1

我正在尝试使用 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

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

谢谢。

4

1 回答 1

4

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

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

出现限制是因为您必须在 WHERE 查询中至少使用一个索引列。对于流表,您必须指定帖子 via post_id、用户 viasource_idfilter_key或直播流 via xid*索引字段在文档站点上用 a 标记。

例如,[此 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' and strpos(message,'the') >=0

于 2012-09-13T15:39:54.697 回答