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

sip*_*r_z 5 php twitter twitter-oauth

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

\n\n

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

\n\n

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

\n\n

这就是我目前所拥有的:

\n\n
$connection = new Abraham\\TwitterOAuth\\TwitterOAuth(\n   \xe2\x80\x98KEY\',\n   \xe2\x80\x98KEY\',\n   \xe2\x80\x98KEY\',\n   \xe2\x80\x98KEY\'\n);\n\n$statuses = $connection->get("search/tweets\xe2\x80\x9d,\n    array(\n        "q"                 => \xe2\x80\x99something\',\n        "result_type"       => "recent",\n        "include_entities"  => true,\n        "count"             => 100\n    )\n);\n// possibly put into a loop - paging\n
Run Code Online (Sandbox Code Playgroud)\n\n

var_dump($statuses->statuses)给我一个对象数组 (100)\n所以假设我的搜索词返回了 298 个结果。根据我上面的代码,pages可以说 I\xe2\x80\x99d 有 3 个。

\n\n

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

\n\n

搜索词 I\xe2\x80\x99m 使用一些流行的词,可能每分钟 100 个。我正在考虑通过 cronjob 每小时运行一次,这样我的数组中就可以有 600-1000 条推文

\n\n

我\xe2\x80\x99已经看到了since_idmax_id,但不确定我\xe2\x80\x99d如何在我的应用程序中使用它们。

\n\n

我\xe2\x80\x99m 希望将推文存储在数据库中,因此我可能会使用和since_id/或\xe2\x80\x98max_id\xe2\x80\x99

\n\n

谢谢

\n

Jon*_*nas 2

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

\n\n

根据您的代码片段,我认为该请求如下所示:

\n\n
$statuses = $connection->get("search/tweets\xe2\x80\x9d,\n    array(\n        "q"                 => \xe2\x80\x99something\',\n        "result_type"       => "recent",\n        "include_entities"  => true,\n        "count"             => 100,\n        "max_id"            => <VALUE OF LAST ID>\n    )\n);\n
Run Code Online (Sandbox Code Playgroud)\n