我有大量的Twitter用户,我希望使用PHP进入网站并在MySQL中缓存推文。但是,当我访问API时,我似乎对速率限制问题感到困惑。我对每个用户提出的每个请求似乎都算作一个请求,这是有道理的。
我注意到其他网站*成功完成了这件事。他们是如何解决这个问题的,他们只是列入白名单,还是我缺少一种技术?
答案 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请求将返回列表中所有用户的最新推文。