2011-07-26 82 views
1

比方說,我有一個用戶A誰正在使用我的Facebook應用程序,而A有一個朋友B誰不使用該應用程序。 我可以得到AB之間的共同朋友的數量嗎?獲得共同朋友號碼FAST?

編輯

科爾姆,正確建議使用friends.getMutualFriends,但不幸的是它是非常非常慢。所以我在想,有沒有可以做同樣的但速度更快的FQL代碼?

我發現FQL查詢(搜索之後)是這樣的:

SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1=me()) AND uid2 IN (SELECT uid2 FROM friend WHERE uid1 = friend_id;

,但他們不工作,並拋出以下錯誤:

Can't lookup all friends of XXXXXXX. Can only lookup for the logged in user (XXXXXXX), or friends of the logged in user with the appropriate permission.

那麼,這是什麼appropriate permission


這個問題是基於我以前問question,但我需要共同的朋友只是數量,而不是B朋友列表。在圖形API權限列表:(

謝謝!

回答

0

不,你必須獲得兩份名單,並在你的代碼diff的他們,如果你想使用圖形API。或者,我找不到任何東西你可以運行一個循環,調用/User_id1/friends/User_id2如果User_id1是朋友User_id2將返回true。

如果確定與使用REST API,你可以使用friends.getMutualFriends

+0

非常感謝你的回答。我試過'friends.getMutualFriends',雖然做了我想要的,但速度非常慢。我嘗試使用FQL來取得我在網絡中找到的一些實例的共同朋友,但是所有的查詢都返回了這個錯誤消息'不能查找*****的所有朋友。只能查找登錄的用戶。是否有可能做得更快? –

+0

您嘗試運行的FQL查詢的問題是您只能爲已通過基本權限授權您的應用的用戶調用「朋友」表。你得到的錯誤信息意味着UID2沒有給出這些。所以雖然你可以給它的UID看看你的用戶是否與某人是朋友,你不能拉UID2的朋友來比較它。 這有道理嗎?不知道我說了多少。 –

+0

是的,它是absoulute。感謝您向我解釋:) 你也許碰巧知道另一種更好/更快的方式來獲得共同的朋友? –

2

可以在用戶表mutual_friend_count屬性

SELECT uid, mutual_friend_count from user where uid=53638897