多个Twitter用户在一个站点上提供的Feed没有达到速率限制

时间:2011-04-27 13:33:26

标签: php api twitter ratelimit

我有大量的Twitter用户,我希望使用PHP进入网站并在MySQL中缓存推文。但是,当我访问API时,我似乎对速率限制问题感到困惑。我对每个用户提出的每个请求似乎都算作一个请求,这是有道理的。

我注意到其他网站*成功完成了这件事。他们是如何解决这个问题的,他们只是列入白名单,还是我缺少一种技术?

* http://www.twackle.com/NFL/Aaron-Rodgers_1/tweets

3 个答案:

答案 0 :(得分:1)

streaming API正是您所寻找的,更具体地说,是filter方法。过滤器在最低权限级别允许您实时关注5,000个用户,而无需他们对您的应用进行授权,您也可以使用此方法跟踪最多400个关键字。

现在,如果您还需要历史推文,必须从REST API中提取这些推文(流媒体API的 count 参数不会真的有帮助),但由于你只能通过REST API检索用户的最后3200条推文,你几乎可以回复所有可用的推文历史记录,通过传递16次statuses/user_timeline来调用 count 参数值为200,并相应地进行分页。

http://api.twitter.com/1/statuses/user_timeline.json?screen_name=barackobama&count=200&page=2  http://api.twitter.com/1/statuses/user_timeline.json?screen_name=barackobama&count=200&page=3  http://api.twitter.com/1/statuses/user_timeline.json?screen_name=barackobama&count=200&page=4

每个Twitter帐户每小时可以拨打350个电话,您可以每小时回填大约22个完整的用户时间线。

在实现方面,您可能对Phirehose感兴趣,{{3}}是PHP的流API客户端接口。

答案 1 :(得分:0)

在获取推文之前先尝试授权。应该提高利率限制

答案 2 :(得分:0)

组合多个user_timelines的简单方法是create a Twitter list并使用GET /:user/lists/:id/status。该单个API请求将返回列表中所有用户的最新推文。