sip*_*r_z 5 php twitter twitter-oauth
我正在使用AbrahamTwitter 库来搜索推文。一切都很顺利,但问题是,我的搜索返回了 100 多个结果。
是否有一种简单的循环方法,例如使用 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\nRun Code Online (Sandbox Code Playgroud)\n\nvar_dump($statuses->statuses)给我一个对象数组 (100)\n所以假设我的搜索词返回了 298 个结果。根据我上面的代码,pages可以说 I\xe2\x80\x99d 有 3 个。
我想知道最好的方法是什么?
\n\n搜索词 I\xe2\x80\x99m 使用一些流行的词,可能每分钟 100 个。我正在考虑通过 cronjob 每小时运行一次,这样我的数组中就可以有 600-1000 条推文
\n\n我\xe2\x80\x99已经看到了since_id和max_id,但不确定我\xe2\x80\x99d如何在我的应用程序中使用它们。
我\xe2\x80\x99m 希望将推文存储在数据库中,因此我可能会使用和since_id/或\xe2\x80\x98max_id\xe2\x80\x99
谢谢
\nsearch/tweets(不带since_id或max_id)返回按时间顺序从最新推文开始排序的最新推文。因此,您需要保存id最后返回的推文。要获取推文的下一个“页面”,只需重复该请求,但还包括max_id设置为您保存的值id。
根据您的代码片段,我认为该请求如下所示:
\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);\nRun Code Online (Sandbox Code Playgroud)\n