Как мое веб-приложение может получать фотографии пользователей из Твиттера, не превышая лимит API? - PullRequest
2 голосов
/ 08 января 2010

Я пишу веб-приложение, для которого нужны только фотографии профиля пользователя Twitter. Я получаю их, анализируя вызов API-интерфейса пользователя / показать XML без аутентификации (http://apiwiki.twitter.com/Twitter-REST-API-Method:-users%C2%A0show):

$twitterXML = simplexml_load_file("http://twitter.com/users/show/".$twitterUsername.".xml");

В моем тестировании я достиг предела скорости API Twitter. Когда я получаю URL-адрес пользовательской фотографии указанным выше способом, накладывается ли ограничение скорости API Twitter на IP-адрес моего сервера, чтобы каждый, кто использует мое веб-приложение, вносил свой вклад в ограничение 150 часов? Или это ограничение на IP-адрес пользователя, который посещает мою веб-страницу?

Есть ли способ получить фотографию профиля пользователя без ограничения скорости?

Ответы [ 5 ]

8 голосов
/ 08 января 2010

Существует ряд способов избежать ограничения скорости.

Вы можете использовать Twavatar и даже не нажимать на Twitter напрямую. http://twitteravatar.appspot.com/

Вы можете создать дополнительную учетную запись Twitter для использования в качестве бота для аутентификации при вызове API, что дает вам дополнительно 150 обращений в час.

Вы можете получить свой IP белый список, в этом случае вы сможете делать 20 000 запросов в час. http://twitter.com/help/request_whitelisting

Вы можете сделать так, чтобы пользователи проходили аутентификацию через твиттер, когда они посещали ваш сайт, и нажимали на них до предела скорости. Войти в Twitter - хороший способ для достижения этой цели: http://apiwiki.twitter.com/Sign-in-with-Twitter

Вы можете узнать больше об ограничении скорости Твиттера на их веб-сайте. http://apiwiki.twitter.com/Rate-limiting

1 голос
/ 08 января 2010

Ваш сервер извлекает XML-файл, поэтому IP-адрес сервера регулируется. Одним из решений будет использование какой-либо формы кэширования, чтобы уменьшить количество запросов, отправляемых вашим сервером.

1 голос
/ 08 января 2010

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

Вот статья о кешировании с помощью PHP: http://www.developertutorials.com/tutorials/php/php-caching/page1.html

0 голосов
/ 08 января 2010

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

0 голосов
/ 08 января 2010

Я не очень знаком с API Twitter. Мой первый вопрос: запрашивают ли ваши пользователи похожие профили? Если между запросами ваших пользователей на фотографии есть сходство, вы можете рассмотреть возможность кэширования фотографий профиля и проверки кэша перед отправкой запроса в Twitter.

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