所以我正在制作一个Twitter获取网站,其中所有来自特定主题标签的推文都将使用ajax实时获取。一切正常,我想,直到它突然停止工作。如果我等了3分钟左右,它就会再次开始工作。 PHP给了我错误,如
注意:尝试获取非对象的属性......
我正在运行的代码:
require_once '../lib/TwitterAPIExchange.php';
$settings = array(
'oauth_access_token' => "...",
'oauth_access_token_secret' => "...",
'consumer_key' => "...",
'consumer_secret' => "..."
);
$url = 'https://api.twitter.com/1.1/search/tweets.json';
$getfield = '?q=#hashtag&result_type=recent';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$response = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
foreach(json_decode($response) as $result){
foreach($result as $post){
echo '<div class="post"><div class="header"><img src="'.$post->user->profile_image_url.'"><p class="user">'.$post->user->name.'</p></div><div class="text">'.$post->text.'</div></div>';
}
break;
}
答案 0 :(得分:0)
我在@Uwe Allner的帮助下想出来了。事实证明Twitter API有一个叫API速率限制的东西。因此,正如您可能猜到的那样,它们限制了每x时间的请求数量。在“搜索”下,我注意到他们已经设置了每15分钟180次查询的限制。所以我可以每5秒进行一次查询。
180/15 = 12
60/12 = 5