2013-04-01 2 views
1

Я делаю приложение twiiter и я сделать петлю для получения данных из щебета API Он показал ошибкуTwitter API возвращает HTTP 429 - Слишком много запросов

[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 

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

+5

Запросить меньшее количество запросов? :) – duskwuff

+0

Во многих случаях ситуации, в которых вы должны зацикливаться, лучше справляются с использованием потокового API. – ceejayoz

ответ

11

Twitter API documentation имеет длинную статью о rate-limiting.

15 минуты Окно ограничение

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

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

Нажмите на ссылку в цитате, чтобы перейти к конкретным лимитам (в 15-минутных окнах, упомянутых выше), отсортированных по ресурсам.

+0

Так как я могу исправить свой код –

+3

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

2

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