2012-04-04 52 views
1

我怎樣才能讓所有喜歡給定頁面的朋友無需重複訪問朋友列表以及該朋友的喜好列表?如何讓喜歡給予頁面的用戶的所有朋友?

的dumbway會是這樣:

friends_like_page = [] 
for f in friends: 
    for l in friends.like: 
     if l = page_id: 
     friends_like_page.append(f) 

但我不知道是否有來構建這個FQL查詢的方式。

提前#2和解決:

由@Igy使用的意見,我可以解決這個問題。我在那裏發佈了答案。無論如何,我接受了Igy的回答,因爲這是他的想法幫助了我。

提前1:

好吧,我已經得到了現在這個權利:

抓取所有的朋友:

SELECT uid2 FROM friend WHERE uid1 = me() 

從用戶UID抓取頁面風扇

SELECT uid, page_id FROM page_fan where uid = UID 

聯合

SELECT uid, page_id FROM page_fan WHERE uid in (SELECT uid2 FROM friend WHERE uid1 = me()) 

但是,這似乎並沒有正常工作。這是怎麼回事?

回答

3

你不能得到一個誰喜歡一個頁面的列表,你總是需要從用戶開始並回到頁面 - 最快的方法是檢索用戶的朋友喜歡的批量查詢並將結果與​​一些數組搜索運算符進行比較

+0

+1感謝嘿,我用批處理查詢。 – santiagobasulto 2012-04-05 19:40:35

3

因此,在戰鬥一整天后,我終於解決了它。正如@Igy所說,我構建了一個批量請求,這裏是它:

curl https://graph.facebook.com \ 
    -F 'access_token=...' \ 
    -F 'batch=[ 
      {"method": "GET", 
       "name" : "get-friends", 
       "relative_url": "me/friends", 
       }, 
       {"method": "GET", 
       "relative_url": "likes/?ids={result=get-friends:$.data.*.id}" 
       } 
    ]' 
相關問題