cURL调用Twitter API会议"速率限制"而不超过5个请求

Ben*_*ley 5 php twitter curl

我刚刚开始乱用一个非常非常基本的Twitter API(http://api.twitter.com/1/statuses/user_timeline.json)来通过cURL将我的推文拉到我的网站.然而,使用一个没有人知道的页面(从而消除了无意中流量的可能性),在我有机会测试它之前,我得到了一个超出限速的东西.它表示它会在一小时后重置5次,所以我再次检查,并且有一分钟它可以工作但是它又回来告诉我我的速率限制被超过了.对于了解Twitter API和/或cURL的人来说,有几个问题:

首先,是应用于我的服务器(而不是用户)的速率限制?我会这么认为,但这当然会让它变得艰难.即使每个访问者有一个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);
Run Code Online (Sandbox Code Playgroud)

此外,我现在已经得到它,以便如果Twitter返回速率限制错误,它会在文本文件中记录错误,以及限制将重置的时间.看看那个文件,它唯一一次更新(我没有重写,它只是添加)是我加载页面(可能一小时一两次),所以它不像其他东西正在使用此页面并调用此URL.

有帮助吗?

cee*_*yoz 3

经过身份验证的请求应计入用户每小时 350 次的限制。未经身份验证的请求将计入​​您的 IP 地址 150 个/小时的限制。

如果您在开发过程中遇到限制,Twitter 通常非常愿意将开发服务器 IP 列入白名单。

http://dev.twitter.com/pages/rate-limiting

一些应用程序发现默认限制不足。在这种情况下,我们提供白名单。可以将用户帐户和 IP 地址列入白名单。每个列入白名单的实体,无论是帐户还是 IP 地址,每小时允许 20,000 个请求。如果您正在开发应用程序并希望考虑加入白名单,请填写白名单申请表。由于请求数量众多,我们无法全部回复。如果您的请求已获得批准,您将收到一封电子邮件。