1

FQL Q = SELECT FRIEND_COUNT從用戶其中uid =「ID」FQL查詢的FRIEND_COUNT已停止工作,並給出錯誤

我用上面的FQL查詢得到朋友的數量。它一直在爲我工作了很長一段時間。 [使用Javascript SDK]

但現在它提供了以下錯誤消息,

{ 「錯誤」:{ 「消息」:「(#604)你的說法是不編入索引的WHERE 子句必須包含。可轉位柱這樣的柱都標有 *從http://developers.facebook.com/docs/reference/fql鏈接的表中」, ‘類型’:‘OAuthException’}}

我試圖複製這個查詢和在圖API資源管理器工具粘貼它,它工作得很好。

我檢查了user的FQL參考,uid仍然是一個可編入索引的列。

我檢查了博客的重大更改,但沒有提及fql。 任何想法,爲什麼這不工作了?還有其他方式來實現這個目標嗎?

+0

這看起來像使用FQL的正確方法! http://www.fbrell.com/fb.api/everyone-data。恥於我不知道.. – BST 2012-01-28 10:49:34

回答

4

您可能訪問令牌不正確,或者您的查詢可能會引用數字用戶ID值。

https://graph.facebook.com/fql?q=SELECT friend_count FROM user WHERE uid=me()

{ 「數據」:[ { 「FRIEND_COUNT」:NNNN } ] }

https://graph.facebook.com/fql?q=SELECT friend_count FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())

{ 「數據」:[ { 「 friend_count「:421 }, { 「FRIEND_COUNT」:219 }, { 「FRIEND_COUNT」:59 }, { 「FRIEND_COUNT」:239 }, { 「FRIEND_COUNT」:235 }, { 「FRIEND_COUNT」:986 },

編輯

基於代碼的鏈接,你下面的共享,這裏有一種方式來獲得正確編碼的FQL網址。

var q = 'fql?q=' + escape('SELECT friend_count FROM user WHERE uid=100001516911824'); 
FB.api(q, Log.info.bind('fql callback')); 
+0

感謝您的答案。實際上,因爲我正在使用javascript sdk,所以我沒有明確地管理訪問令牌。而且sdk不會自動管理訪問令牌嗎?無論如何,我會更多地關注身份驗證令牌。 – BST 2012-01-28 07:43:32

+0

我已通過使用getLoginStatus()檢查了身份驗證令牌,並且該響應提供了有效的身份驗證令牌以及說明已連接的狀態。我也沒有使用引號:-)其實這段代碼在幾周前就開始工作了。令人驚訝的是,使用Graph API Explorer仍然有效,不知道Javascript SDK有什麼問題。只是爲了確保我也嘗試啓用Web服務器的https,但仍然沒有。最壞的情況下,我將不得不重寫代碼才能從https://graph.facebook.com/fql獲得響應。 – BST 2012-01-28 08:31:40

+1

您使用的是哪種瀏覽器? (Chrome瀏覽器,IE瀏覽器,Safari瀏覽器內置了開發者工具,而Firefox則帶有FireBug插件)您可以監控網絡流量,查看FB JS SDK發送的確切電話以及API的確切響應。也許你的答案就在那裏。 :) – DMCS 2012-01-28 08:34:50

0
var query = string.Format("SELECT friend_count FROM user WHERE uid=me()"); 
      dynamic parameters = new ExpandoObject(); 
      parameters.q = query; 

      object data2 = fbClient.Get("/fql", parameters);