【问题标题】:Searching a Facebook User's Timeline搜索 Facebook 用户的时间线
【发布时间】:2012-02-03 13:36:46
【问题描述】:

我正在执行此 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 运算符(例如 )来检索一个多更多的帖子。

【问题讨论】:

  • 我敢打赌,他们限制它的唯一原因是人们不会做出比他们更好的搜索。那会消耗大量的处理和带宽。

标签: facebook-fql facebook-timeline


【解决方案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 个 cmets,那么您将获得 1 个结果。这很糟糕,对吧?

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

【讨论】:

  • 感谢限制建议,我将限制设置为 5000,现在可以达到 2010 年 7 月。没有我想要的那么老,但总比没有好。
猜你喜欢
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 2016-01-19
  • 2012-06-21
相关资源
最近更新 更多