Превышен предел скорости - пользовательское приложение Twitter - PullRequest
8 голосов
/ 08 августа 2010

Я работаю с Java-приложением Twitter (используя API Twitter4J). Я создал приложение и могу просматривать временную шкалу текущих пользователей, профили пользователей и т. Д.

Однако при использовании приложения оно довольно быстро превышает ограничение в 150 запросов в час, установленное на клиентах Twitter (я знаю, что разработчики могут увеличить его до 350 для определенных учетных записей, но это не будет разрешать для других пользователей).

Конечно, это не влияет на всех клиентов, есть идеи, как это обойти?

Кто-нибудь знает, что считается запросом? Например, когда я просматриваю профиль пользователя, я загружаю объект User (twitter4j), а затем получаю имя экрана, имя пользователя, описание пользователя, статус пользователя и т. Д. Для помещения в объект JSON - это будет один вызов для получения объекта или несколько будет включать все вызовы user.get ...?

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 08 августа 2010

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

Однако Twitter, похоже, не сбрасывает счетчик для 304 Not Modified (по крайней мере, это не последнийраз я имел дело с этим), поэтому убедитесь, что нет ничего, что нарушает ваше обычное использование HTTP-кэширования, и ваш практический запрос в час увеличивается.

Обратите внимание, что в твиттере есть ошибка в mod_gzip на apache, гдеe-тег неправильно сформирован, чтобы отразить, что кодирование содержимого отличается от кодирования не-сжатого объекта (это правильно, в реализации есть только ошибка).Из-за этого прием gzip-контента из твиттера означает, что он никогда не отправит 304, что увеличивает количество запросов и во многих случаях снижает эффективность использования gzip.

Следовательно, если вы принимаете gzip (ваша веб-библиотека может делать это по умолчанию, посмотрите, что вы можете увидеть с помощью такого инструмента, как Fiddler, я - специалист по .NET, обладающий лишь небольшим знанием Java, отвечая на уровне того, как твиттер работает с HTTP, поэтому я неузнайте подробности веб-библиотек Java), попробуйте отключить это и посмотреть, улучшится ли это.

1 голос
/ 22 августа 2010

Почти каждый тип чтения с серверов Twitter (то есть все, что вызывает HTTP GET) считается запросом.Получение пользовательских графиков, ретвитов, прямых сообщений, получение пользовательских данных - все считается за 1 запрос.Практически единственный вызов API Twitter, который читает с сервера, не считаясь с вашим лимитом API, - это проверка состояния ограничения скорости.

...