我刚刚开始混淆对 Twitter API的非常非常基本的调用(http://api.twitter.com/ 1/status/user_timeline.json)至 通过cURL将我的推文发送到我的网站。然而,使用一个 没有人知道的页面(因此消除了不经意的流量的可能性),我在 之前得到了一个速率限制超出的事情,我甚至有机会测试它。它表示重置时间为 小时,因此我再次检查,并且一分钟后仍然有效,但是它返回 告诉我我的费率限制已超出。对于知道Twitter API和/或卷曲的人有几个问题:cURL调用Twitter API会议“速率限制”,但不超过5个请求
首先,应用于我的服务器(而不是用户)的速率限制?我会这样认为的,但是 可能会让它变得艰难。即使每个访问者的一个API调用 可能在具有边际流量的网站上轻松超过一小时内的速率限制 。有没有办法将呼叫与访问者关联,而不是 服务器?似乎可能不是,但我不完全确定整个API是如何工作的,并且cURL似乎在许多 位置中被提倡。我知道,如果我使用JSON和AJAX数据,我可以从用户请求 ,但仅仅为了争辩,什么 关于cURL?
其次,任何想法如何我可以超过我的利率限制,甚至没有 刷新页面?我支付在另一个位置托管,所以我可能 与另一个站点共享服务器空间,但我的网站肯定有 一个独特的IP,所以应该......应该是好的,对吧?那么 怎么样,即使没有运行代码(或者运行一次就运行 ?),我已经超过了速率限制?
这就是我已经得到了代码,如果它可以帮助:
$ch=curl_init("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=screenname");
curl_setopt_array($ch,array(
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_TIMEOUT=>5,
)
);
$temp=curl_exec($ch);
curl_close($ch);
$results=json_decode($temp,true);
而且,我现在得到它,这样如果Twitter返回限速错误,错误记录在一个文本文件,以及限制将重置的时间。看看这个文件,它唯一更新的时间(我没有重写,它只是增加了)是当我加载页面(这可能在一个小时内一次或两次),所以它不像其他的东西正在使用此页面并调用此URL。
任何帮助?
好的,这是有道理的。我只是拉我自己的Twitter流,所以没有任何需要涉及任何其他用户名,甚至是我自己的用户名,因为它是一个公共流。 – 2010-11-04 22:16:38
我总是忘记我在这些回复中不能有回报。不知道为什么我可能会遇到费率限制?我不刷新页面接近150次。我不应该需要白名单,因为它应该是四行代码,我已经设置好了。但出于某种原因,在重置后的20分钟内,即使我没有加载该页面一次,我的限制已达到。 – 2010-11-04 22:18:06
我会检查你在http://twitter.com/settings/connections上连接的第三方应用程序。你不是与其他一群人共享的IP,我想? – ceejayoz 2010-11-04 22:24:27