1

我想創建一個FQL查詢,選擇所有我在美國的朋友,並且不喜歡某些Facebook頁面。理想情況下,我想返回一個排除在用戶朋友的選擇,而不喜歡Page X或Page Y.如何使Facebook FQL查詢選擇所有不喜歡頁面的朋友?

Facebook FQL非常強大,但它在某些功能上也受到限制。例如,「NOT IN」運算符不受支持[來源12]。在做了一些研究之後,似乎有一種模仿這種行爲的方法。我發佈的資源有例子,但簡而言之,用戶可以提交一個multi-query來選擇不在另一組人(查詢2)中的一組人(查詢1)並返回結果。

這是我的FQL查詢到目前爲止,但它不表現我的意願。任何幫助或建議?

SELECT uid, name, pic_square, current_location FROM user 
     WHERE current_location.country = 'United States' AND 
     uid IN (
      SELECT uid2 FROM friend WHERE uid1 = me() 
     ) AND NOT (
      uid IN (
       SELECT uid FROM page_fan WHERE uid IN (
        SELECT uid2 FROM friend WHERE uid1 = me() 
       ) AND (page_id=40796308305 OR page_id=56381779049) 
      ) 
     ) 

這應該閱讀:選擇誰住在美國,不喜歡可口可樂或不喜歡百事可樂所有的朋友。

我見過的其他解決方案是循環瀏覽朋友,抓住他們的喜好,並通過遍歷該列表構建自己的數據結構。我可以做到這一點,但這是相當耗時的請求 - 尤其是如果用戶有2-4k個朋友。

感謝您的幫助球員。非常感謝。

回答

1

該查詢似乎是正確的。我想你錯過了權限:friends_likes所需要獲取用戶的朋友喜歡,在這種情況下,你上次查詢 -

SELECT uid FROM page_fan WHERE uid IN (
       SELECT uid2 FROM friend WHERE uid1 = me() 
      ) AND (page_id=40796308305 OR page_id=56381779049) 

會給你少沒有。的結果。

+0

感謝您的幫助。就是這樣。 – envysea

相關問題