我需要得到別人的朋友(1級)的計數,的朋友他們的朋友(2級)和他們朋友的朋友的朋友(3級)。這可能是通過FQL還是Graph API實現的,如果是這樣,如何實現?
到目前爲止,我知道我能得到的第一級計數這個FQL查詢:
SELECT friend_count FROM user WHERE uid = me()
,但我不知道如何進一步得到任何,或者即使它是可以這樣做。
我需要得到別人的朋友(1級)的計數,的朋友他們的朋友(2級)和他們朋友的朋友的朋友(3級)。這可能是通過FQL還是Graph API實現的,如果是這樣,如何實現?
到目前爲止,我知道我能得到的第一級計數這個FQL查詢:
SELECT friend_count FROM user WHERE uid = me()
,但我不知道如何進一步得到任何,或者即使它是可以這樣做。
不,這不能用Graph API或FQL來完成。你可以得到的最遠的是從用戶表與您的朋友選擇的信息,如他們的朋友算,在查詢中做一個子查詢是這樣的:
SELECT uid, friend_count
FROM user
WHERE uid IN (
SELECT uid1
FROM friend
WHERE uid2 = me()
)
但是,這並不甚至讓你在你原來的問題中有兩個層次,因爲你的許多朋友會有朋友的共同點,所以這些總數將遠遠超過你的朋友的朋友數量。爲了得到你所需要的信息,你需要做的是拉出來的朋友的朋友的ID的列表,然後通過執行這樣
SELECT uid1
FROM friend
WHERE uid2 in (
SELECT uid1
FROM friend
WHERE uid2 = me()
)
查詢但是你自己數數看,如果你try to execute this,你會得到類似如下的錯誤:
{
"error": {
"message": "Can't lookup all friends of 36807322. Can only lookup for the logged in user or the logged in user's friends that are users of your app.",
"type": "NoIndexFunctionException",
"code": 604
}
}
,如果你嘗試查詢您的朋友的朋友在圖形API列出一個接一個,你會得到同樣的錯誤信息,如所描述here(感謝嘿這個鏈接)。因此,沒有任何辦法可以用你現有的API來做你想做的事情(當然,除非你爲你的Facebook應用程序獲得了足夠大的用戶基礎,你可以增量地構建用戶的圖形朋友使用訪問令牌的衆多其他您的應用的用戶 - 但我認爲這樣的'解決方案'對您沒有幫助!)
感謝您的細分和細節Mark。 –