我使用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_id
和max_id
,但不确定我在申请中如何使用这些内容。
我希望将推文存储在数据库中,因此我可以使用since_id
和/或'max_id'
由于
答案 0 :(得分:1)
search/tweets
(没有since_id
或max_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>
)
);