多个用户的Twitter API速率限制

时间:2012-04-18 23:38:40

标签: php api twitter twitter-oauth

我正在使用Twitter API编写基于PHP的应用程序。到目前为止,我一直在PHP页面上通过GET请求使用REST API。但是,随着我的应用扩展,我可以很容易地看到它超过了每小时150个请求的限制。这就是原因:

我有各种主题,每个主题定期轮询Twitter API以获取有关主题的推文。例如,我有:mysite.com/cars,mysite.com/trucks等。用户可以转到任一页面。当他在页面上时,通过对我已设置的PHP页面进行AJAX调用,从Twitter中提取实时,更新的更新。 PHP页面确定用户来自哪个类别(汽车,卡车),轮询Twitter搜索结果,然后将JSON返回到类别页面。这听起来令人困惑,但我需要有一些不相关的原因来建立中间PHP页面。

问题是,由于PHP页面正在发出请求,它会很快耗尽速率限制(想象一下,如果有20个类别而不仅仅是汽车和卡车)。我无法使用多个参数拨打一个电话,因为它会合并多个类别的推文,而且我无法将它们分开。我可以缓存结果,但如果我这样做,我添加的类别越多,API调用之间的时间就越长。

那我怎么解决这个问题呢?我查看了流API,但它仅适用于oAuth用户,我不希望我的用户必须登录任何内容。我可以在PHP页面上使用流,然后每次类别页面轮询PHP页面时只发出连续请求吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

a)您不必在流API中使用您的网站用户的oAuth凭据 - 只需要您的: 把它们放在dev.twitter.com的某个地方并对它们进行硬编码。您的用户不会知道后台有任何oAuth。

b)不要使用匿名请求(每小时150个IP)使用oAuth请求(每小时350个outh)。你不必要求你的用户唱歌 - 只需登录一些(1足以开始)你的私人推特账号。如果您不喜欢创建Twitter登录功能,可以在dev.twitter.com上将Twitter帐户的凭据提供给您的Twitter应用程序。

c)正如@Cheeso所提到的 - 缓存!不要让每个页面加载请求Twitter。