2012-09-13 107 views
1

我正在尝试使用FQL进行搜索。 使用Graph API,它可以工作,但使用FQL有更多的选项。 使用类似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

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

由于您的查询中没有“WHERE”子句,因此出现错误。这在FQL中是必需的。

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

例如,[这个FQL] [1]

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

会得到你,表明对尚未发布的主人您的访问令牌所有者的墙的所有帖子,与“的”的字符串他们。这是你能得到的最好的。如果帖子在他们的墙上不可见,那么您将无法获得帖子。

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

[1]:SELECT POST_ID,actor_id,target_id,消息FROM流WHERE filter_key = '其他' 和strpos(消息 '的')> = 0

+0

确定。我知道了。在这种情况下,你知道我是否可以使用Graph API添加一些标准,如updated_time> xxxxx? –

+0

根据FQL流文档“目前不支持query_time_time”。一旦在WHERE子句中有一个可索引字段,就可以使用'AND'和'OR'语句添加任意多种不同的附加条件。 – cpilko

+0

我想使用updated_time使用rest api而不是fql。 –