繁体   English   中英

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

[英]cURL call to Twitter API meeting “Rate Limit” without making more than 5 requests

我刚刚开始乱用一个非常非常基本的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);

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

有帮助吗?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM