2012-09-13 166 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。 –