我构建一个在每小时cron作业上运行的PHP脚本,以查找包含特定主题标签的任何用户的推文。然后我将API发现的推文保存在数据库中。这些推文来自参与简单比赛的人,他们应该在比赛中发布有关比赛的创意并使用标签。
到目前为止,我的脚本非常简单,似乎有效(使用Abraham\TwitterOAuth):
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
$access_token, $access_token_secret);
$json = $connection->get("search/tweets", ["q" => 'contesthashtag',
"result_type" => "recent", "count" => 100, "tweet_mode" => "extended"]);
if($json!=null && $json->statuses && $json->statuses!=null && is_array($json->statuses) && count($json->statuses)>0)
{
foreach($json->statuses as $tweet)
{
if($tweet->in_reply_to_status_id==null && $tweet->in_reply_to_user_id==null && $tweet->in_reply_to_screen_name==null)
{
echo "<tr>
<td>".$tweet->id_str."</td>
<td>".$tweet->created_at."</td>
<td>".$tweet->user->name."</td>
<td>".$tweet->user->screen_name."</td>
<td>".$tweet->full_text."</td>
</tr>";
}
}
}
无论如何,reading the Twitter Search API docs,我注意到了一些事情:
在深入研究之前,重要的是要知道标准搜索API关注的是相关性而非完整性。这意味着搜索结果中可能缺少某些推文和用户。
这是否意味着可能找不到一些带有我正在寻找的#标签的推文?这里的relevance
是什么?这是否意味着拥有少量粉丝的用户不会出现在结果中?
我真的不需要获得超过几个小时的推文,但确实需要确保我得到所有推文,以便没有人不参加比赛。