从日期范围内的Facebook API获取Feed数据

时间:2014-02-17 15:46:10

标签: php facebook facebook-graph-api facebook-php-sdk facebook-apps

我需要在一天之后和另一天之前获取用户Feed中的所有条目。由于我不知道该期间有多少条目,参数LIMIT似乎是强制性的,因此我将限制设置为,例如,100。

当数据准备好被解析时,如果键PAGING在结果集中,我必须检查(或不是我?),如果是,则再次查询存储在其中的数据。

我不确定这个逻辑是否正确。我的第一个想法是循环结果集,而PAGING仍在那里,然后再次查询。如果PAGING为空,则将JSON返回给用户。这意味着我的查询中没有更多页面,而且我获得了所需的所有数据。

我使用SINCE和UNTIL参数指定日期范围。

问题是我总是收到超出时间限制的错误:超过30秒的最长执行时间

似乎PAGING始终存在,所以我的循环实际上是在搜索用户的Feed中的所有条目,因为他或她创建了自己的帐户。我不确定这一点,但有一件事我确定:它表现得像13,14或15个查询同时出现。正如我所看到的,一些结果不在指定的日期范围内(我认为这是因为关键PAGING没有最初设置的所有参数)。

如果这是查询用户Feed中数据的最佳解决方案,您知道吗?

还有一件事:我正在测试自己的Feed。一些结果我不认识是我在时间轴中发布的内容。所以我假设他们是评论而不是帖子/状态。你对此有所了解吗?

@ EDIT1

看看这个:

我的第一个问题: / ME /进料=的access_token&MY_ACCESS_TOKEN放大器;字段=消息和;因为= 2014年2月11日&安培;直到= 2014年2月17日&安培;限= 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年2月11日到2014年2月17日发布的所有内容都在结果集中(包括一些朋友与我分享的一些事情以及一些我不知道他们是什么的事情是)。

那么我怎么知道何时必须使用PAGING-> NEXT来获取我真正需要的更多数据?

我会尝试在一分钟内用一些代码编辑它

1 个答案:

答案 0 :(得分:10)

你必须使用unix时间戳作为since和until参数,否则它不应该工作。

/me/feed?since=1391244171&until=1391848971&fields=message