1

我正在执行这个 FQL 查询以在我自己的时间线上搜索墙上的帖子:

https://graph.facebook.com/fql?q=SELECT+message+FROM+stream+WHERE+source_id=me()%20AND+strpos(message ,'metallica')+>0&access_token=XXXX

(抱歉链接,看起来不太好)

这不应该返回包含字符串“metallica”的所有状态更新吗?难道我做错了什么?较旧的帖子(1-2 岁)不返回。这是因为:

流表的每次查询仅限于前 30 天或 50 个帖子,以较大者为准,但是您可以使用特定于时间的字段,例如 created_time 以及 FQL 运算符(例如 < 或 >)来检索更大范围的帖子。

4

1 回答 1

1

我读了一篇关于 Facebook 查询如何工作的博客文章 (http://developers.facebook.com/blog/post/478/)

比如说我查询SELECT post_id, message FROM stream WHERE source_id=me() AND comments.count > 50 LIMIT 10

  1. 流项目的初始获取仅限于 10 个,这仅取决于它可以使用索引字段(在其文档页面上标有星号)以及您指定的 LIMIT 获取的内容。请记住,这些是最新的流项目。
  2. 然后从这 10 个中过滤掉添加的 WHERE 部分,因此如果您在这 10 个中只有 1 个帖子的评论超过 50 条,那么您将获得 1 个结果。这很糟糕,对吧?

我相信最大限制是 5000,所以这是获得 Metallica 帖子的最佳选择。然而即便如此,Graph API 似乎在它的回溯方面受到了限制。有些人查看并发现只有 2010 年的帖子在那里,我无法超过 2009 年 4 月。也许我每年的帖子比其他人少,它可能是基于帖子计数而不是基于日期的 API 将店铺。

于 2012-02-03T16:59:52.380 回答