Эффективно подписывайтесь на пользователей Pinterest через API, в течение заданного периода времени в PHP Codeigniter

Pinterest API для следования:
LIMIT 1000 хитов в час на токен доступа пользователя
https://api.pinterest.com/v1/me/following/users/?access_token=XXXXXXXX&Пользователь = ХХХХХХХ

+-------------+---------------------+------------------+
|   userId    | usertoFollowPerHour | maxUserAvailable |
+-------------+---------------------+------------------+
| 1           |                 100 |              1000|
| 2           |                 200 |              9000|
| 3           |                 210 |               100|
| 4           |                 300 |              1100|
| 5           |                 300 |               900|
| .           |                     |                  |
| .           |                     |                  |
| .           |                     |                  |
| n           |                    n|                 n|
+-------------+---------------------+------------------+

Теперь я должен следить за пользователями по определенному идентификатору пользователя, чтобы:
Я могу следить за пользователями в пределах лимита и
Pinterest не блокирует мой профиль

В настоящее время я делаю это:
Крон, который будет попадать по URL следующей функции через каждые 3 часа
Функция, которая:

  1. вычисление пользователя, чтобы следовать в одном цикле, например:

        1. let currentTime = 1:00
    and endTime = 2:00
    user to follow = 300
    timeRemaining = currentTime-endTime => 60 minutes
    300/60 = 5 => ceil(5)=5
    2. it will fetch five user in one iteration from Pinterest
    3. than it will follow them one by one in secont loop
    4. after that again it will calculate until userToFllow become 0
    300-5=295 =>  ceil(295/timeRemaining(let 59)) = 5
    5. again 1 for next user
    

    ВЫХОД

По приведенной выше логике некоторые из наших пользователей были заблокированы / заблокированы, возможно, из-за Pinterest причина

Пожалуйста, предложите мне ответить решением, если возможно, использовать ли мне многопоточность или несколько функций для выполнения этой асинхронной операции. Я буду счастлив, если это может быть выполнено только CodeIgniter

3

Решение

Так что следуйте этой логике в вашем API:

Каждому приложению (с уникальным идентификатором приложения) разрешено 1000 вызовов в час для каждого уникального токена пользователя. 60-минутное окно — это скользящее окно, основанное на том, когда вы делаете свой первый запрос. Если вы достигнете своего предела скорости, вам придется подождать максимум 1 час, чтобы получить еще несколько запросов.

Каждый ответ API возвращает заголовок, который дает вам обновленную информацию о
ограничение скорости. X-RateDlimit-Limit является пределом скорости для этого конкретного
request, а X-Ratelimit-Remaining — это количество запросов, которые у вас есть
осталось в 60-минутном окне.

X-Ratelimit-Limit: 1000
X-Ratelimit-Remaining: 890

Добавьте это условие в заголовок вашего ответа API и проверьте, сколько осталось.

If you exceed your rate limit for a given endpoint, you’ll get a 429 “Too many requests” error code.

Проверьте ответ на это условие и отправьте электронное письмо самому себе, если http-код равен 429, или войдите в файл журнала.

PS: Не пробовал, но уверен, что это поможет вам решить вашу проблему таким же образом.

Источник: Пинтрест Документация

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector