Twitter API - 如何在过去24小时内按标签计算推文?

时间:2017-09-05 07:52:37

标签: php json api twitter twitter-oauth

我尝试使用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>';

}            
?>

1 个答案:

答案 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次,这将是一种解决方法。