我尝试使用Twitter API,我想计算在过去24小时内有多少推文包含特殊标签。
我真的找不到办法吗?它似乎限于100?
我需要在过去24小时内获取推文数量,才能在我的网站上设置一些统计信息。
当前代码:
<?php
ini_set('display_errors', 1);
require_once('TwitterAPIClass/TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "XXXX",
'oauth_access_token_secret' => "YYYY",
'consumer_key' => "XXXX",
'consumer_secret' => "YYYY"
);
/** Perform a GET request and echo the response **/
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://stream.twitter.com/1.1/statuses/filter.json';
$getfield = '?track=%23beer';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$twitter_data = json_decode($twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest(), true);
foreach($twitter_data['statuses'] as $tweets) {
echo $tweets['created_at'] . '<br>';
}
?>
答案 0 :(得分:0)
这可能不是一个完美的答案,但我假设你的假设是正确的。 Twitter REST API已经成为一个指标。 (我知道你正在使用Stream API,但让我解释一下)。
由于Twitter API都遵循API开发人员自己设置的一般规则,因此我假设Stream API遵循与REST API相同的规则。推文数量返回的GET search/tweets状态(参数:count
)的文档限制为100.即使流和REST API之间没有明显的连接,即使它没有在文档,我会说这就是你的数组中只有100个元素的原因。
如果你可以,你可以运行一个脚本,在一定的时间间隔内向服务器发送请求,然后将各个推文保存在数据库/文本文件中。由于请求频率的规定设置为每15分钟15次或每15分钟180次,这将是一种解决方法。