2012-09-24 83 views
4

由於fql查詢是請求url的一部分(例如http://graph.facebook.com/fql?q=SELECT ...)我想url(或它們的params)的長度是有限制的嗎?fql查詢的長度是否有限制?

+0

我看到查詢失敗,像這樣的錯誤:例外:收到的Facebook錯誤響應(代碼601):解析器錯誤:意外','在位置2083.)我沒有任何額外的','所以我認爲必須是一些限制的SELECTs的大小。我不會通過瀏覽器,但我通過瀏覽器遇到完全相同的問題。 –

+0

相關問題這裏:http://stackoverflow.com/questions/2317790/facebook-max-number-of-parameters-in-in-條款 –

回答

6

對於FQL查詢本身的長度沒有記錄或公佈的限制,但對查詢字符串的長度有限制(這在瀏覽器和Web服務器上有所不同,請參閱Compatibility issues)。

請注意,您不需要使用GET來運行查詢,並且POST將正常工作,可以避免查詢字符串限制。

順便說一句,如果你使用SDK發出FQL查詢您可以指定相應的HTTP方法手動

使用JS-SDK:

FB.api('/fql', {q:'FQL_QUERY'}, 'post', function(response){ 
    // Handle results 
}); 

使用PHP-SDK:

$response = $fb->api('/fql', 'post', array('q'=>'FQL_QUERY')); 
+0

我不完全確定什麼FB SDK的,但我想查詢用沒有SDK的POST請求。如果您發佈到'http:// graph.facebook.com/fql'並將'p'放入有效負載(長度無限)中,則會收到錯誤響應(400「Unsupported post request。」)。我假設,如果你按照上面的回答進行了描述,那麼FQL查詢字符串也會被添加爲URL參數,無論使用什麼HTTP動詞,我都認爲這總是受到限制。我的解決方案是將請求發送到'https:// api.facebook.com/method/fql.query',並將查詢字符串作爲'query'放入有效內容中。 – Nick

+1

@Nic,如果你通過POST方法查詢API,一定要在你的載荷中有'method = get'到'https:// graph.facebook.com/fql' –

相關問題