Twitter API возвращает HTTP 429 — слишком много запросов

Я делаю приложение twiiter и делаю цикл для получения данных из twitter API. Он показал ошибку

[raw] => HTTP/1.1 429 Too Many Requests
[content-type: application/json; charset=utf-8
date: Fri, 29 Mar 2013 20:03:07 UTC
server: tfe
set-cookie: guest_id=v1%3A136458738755627462; Domain=.twitter.com; Path=/; Expires=Sun, 29-Mar-2015 20:03:07 UTC

Как я могу это исправить


person Tanapat Ruengsatra    schedule 01.04.2013    source источник
comment
Делать меньше запросов? :)   -  person    schedule 01.04.2013
comment
Во многих случаях ситуации, когда вы будете зацикливаться, лучше решать с помощью потокового API.   -  person ceejayoz    schedule 01.04.2013


Ответы (3)


В документации API Twitter есть длинная статья о ограничение скорости.

15 минут Windows

Ограничения скорости в версии 1.1 API разделены на 15-минутные интервалы, что является изменением по сравнению с 60-минутными блоками в версии 1.0. Кроме того, все конечные точки версии 1.1 требуют аутентификации, поэтому больше не будет концепции вызовов без аутентификации и ограничений скорости.

В то время как в первой версии API приложение с поддержкой OAuth могло инициировать 350 запросов на основе GET в час на каждый токен доступа, модель ограничения скорости API версии 1.1 позволяет использовать более широкий диапазон запросов за счет ограничений запросов для каждого метода. Для запросов GET доступно два начальных сегмента: 15 вызовов каждые 15 минут и 180 вызовов каждые 15 минут.

На странице Ограничения скорости показано, какой ресурс разрешает, сколько запросов за 15 минут.

Делайте меньше запросов в 15-минутные окна. Вы можете кэшировать ответы от API и читать данные оттуда вместо обновления данных, каждый раз запрашивая API. Например. не запрашивайте домашнюю временную шкалу каждый раз, когда пользователь нажимает кнопку, а читайте ранее кэшированные результаты. Затем установите тайм-аут для кеша, чтобы ваши кешированные данные не устарели слишком сильно.

person nkr    schedule 01.04.2013

Вы слишком часто пытаетесь запрашивать обновления. Подождите час, затем перезапустите приложение, но запрашивайте Twitter только каждые 5 минут.

person Kylar    schedule 01.04.2013

Я нашел кое-что, что может вам помочь: установите для этого параметра значение wait_on_rate_limit = True.

tw.API(auth,wait_on_rate_limit=True)
person Tamra.y    schedule 24.08.2019