【发布时间】:2014-03-17 00:03:30
【问题描述】:
我需要在一天之后和另一天之前获取用户提要中的所有条目。由于我不知道该期间有多少条目,并且参数LIMIT 似乎是强制性的,所以我将限制设置为例如100。
当数据准备好被解析时,我必须检查(或者不是?)键 PAGING 是否在结果集中,如果是,则使用其中存储的数据再次查询。
我不确定这个逻辑是否正确。我的第一个想法是在 PAGING 仍然存在时循环结果集,然后再次查询。如果 PAGING 为空,则将 JSON 返回给用户。这意味着我的查询中没有更多页面,我得到了我需要的所有数据。
我使用 SINCE 和 UNTIL 参数来指定日期范围。
问题是我总是收到超过时间限制的错误:Maximum execution time of 30 seconds exceeded in...
PAGING 似乎一直都在,所以我的循环实际上是在搜索用户提要中的所有条目,因为他或她创建了自己的帐户。我对此不确定,但我可以肯定的一件事:它在超时之前执行了 13、14 或 15 个查询。正如我所看到的,有些结果不在指定的日期范围内(我认为这是因为关键 PAGING 没有初始设置所有参数)。
您知道这是否是查询用户提要中数据的最佳解决方案吗?
还有一件事:我正在使用自己的提要进行测试。有些结果我不认识是我在时间轴上发布的。所以我假设它们是 cmets 而不是帖子/状态。你知道吗?
@EDIT1
看看这个:
我的第一个查询: /me/feed?access_token=MY_ACCESS_TOKEN&fields=message&since=2014-02-11&until=2014-02-17&limit=100
PAGING->NEXT 中的字符串 https://graph.facebook.com/MY_ID/feed?fields=message&limit=100&access_token=MY_ACCESS_TOKEN&until=1392153316
它切断了 since 参数,我认为 until 已转换为 UNIX 时间(自 1970 年以来)。
但是我检查了我的时间线,从 2014 年 11 月 2 日到 2014 年 2 月 17 日,我在其中发布的所有内容都在结果集中(包括一些朋友与我分享的一些内容和一些我不知道他们的内容是)。
那么我怎么知道何时必须使用 PAGING->NEXT 来获取更多我真正需要的数据??
我稍后会尝试用一些代码来编辑它
【问题讨论】:
标签: php facebook facebook-graph-api facebook-php-sdk facebook-apps