【发布时间】:2011-11-08 22:54:43
【问题描述】:
我刚刚开始搞乱一个非常非常基本的调用 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。
有什么帮助吗?
【问题讨论】: