Работа с лимитом запросов в Twitter REST API - PullRequest
1 голос
/ 28 июня 2011

У меня есть приложение Django, которое должно извлечь информацию follower_count из нескольких учетных записей Twitter. Но я сталкиваюсь с некоторыми проблемами с лимитом запросов. Приложение не является приложением Twitter, поэтому оно не имеет учетной записи и не использует OAuth, поэтому белый список не представляется возможным (если я правильно понимаю белый список). Итак, у меня есть несколько вопросов:

1) Есть ли способ обойти этот лимит для приложений, не являющихся твиттерами

2) Является ли предел 150 трудным 1 часом? Это означает, что если вы достигнете предела в 8 утра, вы просто ждете до 9 утра независимо от запросов, сделанных за это время, или счетчик часов сбрасывается каждый раз, когда делается запрос после начальных 150?

3) В настоящее время я использую следующий код для получения моих данных:

for page in pages:
    url = 'api.twitter.com/1/users/show/' + page.twitter_name + '.json'
    target = urllib2.urlopen(url)
    request = simplejson.loads(target.read())

    # parse the request

Считается ли это как один запрос на объект страницы, или я могу что-то сделать в этом коде, чтобы уменьшить количество запросов, которые я делаю на страницу?

4) Правильно ли я понимаю белый список в том смысле, что он предназначен для приложений Twitter, или я должен изучить белый список различных учетных записей Twitter, из которых я получаю информацию? (Я уверен, что эта информация существует, но все ссылки, которые я мог найти относительно белого списка, были сломаны)

EDIT: Теперь я обнаружил, что твиттер больше не предлагает новые белые списки, поэтому не обращайте внимания на эти элементы вопроса.

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Вот хороший метод для определения количества оставшихся хитов: http://api.twitter.com/1/account/rate_limit_status.jsonОн возвращает что-то вроде этого, сообщая, когда вам разрешено сделать еще один запрос:

{
    "remaining_hits": 150,
    "reset_time_in_seconds": 1277234708,
    "hourly_limit": 150,
    "reset_time": "Tue Jun 22 19:25:08 +0000 2010"
}

POW

1 голос
/ 28 июня 2011

Я бы сказал, что для чего-то вроде количества подписчиков вам не нужно, чтобы он был актуальным с точностью до секунды. Поскольку каждая загрузка уже генерирует кучу запросов (получение данных нескольких пользователей), вам лучше пожертвовать небольшой точностью для меньшего количества запросов. Сохраните счетчики, которые вы получаете в объектах страницы, возможно, вместе с отметкой времени, когда был сделан последний запрос, а затем используйте число из модели и пересчитывайте только, если прошло больше часа с момента последней проверки. Число подписчиков, вероятно, в любом случае не меняется так резко.

ОБНОВЛЕНИЕ: Каждый раз, когда вы работаете со сторонним API, вы всегда должны использовать при разработке макеты, особенно с учетом ограничения скорости. Просто получите ответ один раз, сохраните его, а затем укажите свой AJAX-запрос на сохраненное, скопированное во время разработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...