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

Twitter API - How to count Tweets by hashtag in last 24 hours?

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

}            
?>

这可能不是完美的答案,但我假设您的假设是正确的。 Twitter REST APIs 已经是一个指标。 (我知道您正在使用 Stream API,但让我解释一下)。

由于 Twitter API 都遵循 API 开发者自己制定的一般规则,我假设 Stream API 遵循与REST API。 GET search/tweets 的文档指出(参数:count)返回的推文数量限制为 100。即使流媒体和 REST API 之间没有明显的联系,即使它没有在文档中描述,我会说这就是为什么你的数组中只有 100 个元素的原因。

如果可能的话,您可以 运行 一个脚本,它在一定的时间间隔内向服务器发送请求,然后将各个推文保存在 database/text file/whatever 中.由于请求频率的调节设置为每 15 分钟 15 次或每 15 分钟 180 次,这将是一种解决方法。