Twitter搜索API - since_id和max_id可生成更多结果

时间:2016-01-22 16:14:41

标签: php twitter twitter-oauth

我使用Abraham推特库来搜索推文。一切都很顺利,但问题是,我的搜索返回了100多个结果。

是否有一种简单的循环方式,例如使用较新的API v1.1进行分页?

我需要能够通过特定搜索中的搜索获取所有推文,然后遍历每个结果以创建数组

这就是我目前所拥有的:

$connection = new Abraham\TwitterOAuth\TwitterOAuth(
   ‘KEY',
   ‘KEY',
   ‘KEY',
   ‘KEY'
);

$statuses = $connection->get("search/tweets”,
    array(
        "q"                 => ’something',
        "result_type"       => "recent",
        "include_entities"  => true,
        "count"             => 100
    )
);
// possibly put into a loop - paging

var_dump($statuses->statuses)给了我一个对象数组(100) 所以我要说我的搜索字词返回298个结果。根据我上面的代码,我可以说3 pages

我想知道最好的办法是什么?

搜索条件我正在使用一些流行的,可能是100分钟。我想通过cronjob运行这个,每小时一次,比方说,我的阵列中可能有600-1000条推文

我见过since_idmax_id,但不确定我在申请中如何使用这些内容。

我希望将推文存储在数据库中,因此我可以使用since_id和/或'max_id'

由于

1 个答案:

答案 0 :(得分:1)

search/tweets(没有since_idmax_id)返回从最新推文开始按时间顺序排序的最新推文。因此,您需要保存返回的最后一条推文的id。要获取推文的下一个“页面”,只需重复请求,同时还要将max_id设置为您保存的id值。

根据您的代码段,我认为请求看起来像这样:

$statuses = $connection->get("search/tweets”,
    array(
        "q"                 => ’something',
        "result_type"       => "recent",
        "include_entities"  => true,
        "count"             => 100,
        "max_id"            => <VALUE OF LAST ID>
    )
);