FQL搜索公共帖子

时间:2012-09-13 15:08:29

标签: facebook facebook-graph-api search facebook-fql

我正在尝试使用FQL进行搜索。 使用Graph API,它可以工作,但有更多选项使用FQL。 使用像

这样的东西
https://graph.facebook.com/search?q=myquery&access_token=mytoken

效果很好。

我正在寻找FQL中的等价物。

我必须在这里写什么查询

https://api.facebook.com/method/fql.query?query=SELECT%20post_id%2C%20actor_id%2C%20target_id%2C%20message%20FROM%20stream&access_token=mytoken

上面的查询给了我

Parser error: unexpected end of query

我想搜索所有公开信息。 我一直在寻找,但我没有找到任何解决方案。

感谢。

1 个答案:

答案 0 :(得分:4)

要搜索字符串的公开帖子,您需要使用Graph API,然后在脚本中过滤这些帖子。我不认为在FQL中搜索所有公开帖子是可能的。虽然FQL更强大,但它也更有限。

您收到错误,因为您的查询中没有“WHERE”子句。这在FQL中是必需的。

限制是因为您必须在WHERE查询中使用至少一个索引列。对于流表格,您必须通过post_id指定发布信息,通过source_idfilter_key指定用户,或通过xid指定直播信息流。索引字段在文档站点上标有*

例如,[this FQL] [1]

SELECT post_id,actor_id,target_id,message FROM stream WHERE filter_key = 'others' 
   AND strpos(message, 'the') >= 0

会在您的访问令牌所有者的墙上显示所有尚未由所有者发布的帖子,其中包含字符串“the”。这是你能得到的最好的。如果帖子在墙上看不到,那么你就不会收到帖子。

如果您试图省略索引字段,FQL将抛出“您的语句不可索引”错误。

[1]:SELECT post_id,actor_id,target_id,message FROM stream WHERE filter_key ='others'和strpos(message,'the')> = 0