2012-04-18 129 views
1

我正在使用Twitter API编写基于PHP的应用程序。直到现在,我一直通过PHP页面上的GET请求使用REST API。但是,随着我的应用程序规模扩大,我可以轻松看到它超过每小时150个请求的限制。原因如下:多个用户的Twitter API速率限制

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

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

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

+0

使用缓存。您可以缓存来自Twitter的每个响应,然后为其他用户重新使用缓存的内容。这仅在用户之间存在大量重叠时才有用。 – Cheeso 2012-04-26 13:52:29

回答

1

a)您不必在流式API中使用您的网站用户的oAuth凭证 - 只要您的: 将它们置于dev.twitter.com中的某个位置并对它们进行硬编码。你的用户不会知道后台有任何oAuth。 b)不要使用匿名请求(150每IP每小时)使用oAuth请求(350每oAuth每小时)。您不必要求用户唱歌 - 只需登录几个(1就足以开始)您的私人Twitter帐户。如果您不喜欢创建Twitter登录功能,您可以在dev.twitter.com上的twitter应用程序中获取您的Twitter帐户的凭据。

c)由于@Cheeso提到 - 缓存!不要让每个页面载入请求。