我正在根据php中包含特定主题标签的当前推文计数构建一个事件。 在主页面上,我有一个计数器,上面写着:“到目前为止的推文:xxx”。我用过这个php脚本:
global $total, $hashtag;
$hashtag = '#somehashtag';
$total = 0;
function getTweets($hash_tag, $page) {
global $total, $hashtag;
$url = 'http://search.twitter.com/search.json?q='.urlencode($hash_tag).'&';
$url .= 'page='.$page;
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$json = curl_exec ($ch);
curl_close ($ch);
$json_decode = json_decode($json);
$total += count($json_decode->results);
if($json_decode->next_page){
$temp = explode("&",$json_decode->next_page);
$p = explode("=",$temp[0]);
getTweets($hashtag,$p[1]);
}
}
getTweets($hashtag,1);
接下来,我将结果保存在我的数据库中:
$updateCount = "UPDATE tweets SET currentcount = '$total'";
$doQuery = mysql_query($updateCount, $con) or die(mysql_error());
此脚本由cronjob运行,每2分钟触发一次脚本。 它工作正常。但是这个脚本只返回1500条推文,因为twitter不再允许。
我怎样才能跟踪当前的推文数量?我知道没有办法超越twitter api的最大推文。但也许通过时间或数据库检查? 提前谢谢!
答案 0 :(得分:2)
我会这样做:
该方法存在一个问题:如果在不到2分钟内有超过1500条推文,则有些不会被计算在内。
要获取上一条推文的推文,您可以使用since_id
参数:
since_id:返回状态ID大于给定ID的推文。