我想使用facebook Graph API v2.2找出两个随机用户之间的共同朋友。
我仔细阅读了文档https://developers.facebook.com/docs/graph-api/reference/v2.2/user.context/mutual_friends 它说,"需要具有user_friends权限的有效用户访问令牌才能使用该应用查看其他朋友的共同朋友。 "
如果他们不是彼此的朋友,有没有办法可以在currentUser和User2之间找到所有共同朋友的号码和名称?
我提到了许多其他问题: Facebook Graph API 2.2 mutual friends =>没有答案
How to get Mutual Friends via Facebook's Graph API =>该解决方案仅在两个用户是朋友时才有效,在我的情况下可能不是这样。
答案 0 :(得分:1)
我即将自己实施。我有一个类似的用例,两个用户可能不是朋友,但我想看看他们的哪些朋友是相互的。
显然,您必须提供“应用”证明'当两个用户不是共同的朋友时,来自服务器的API请求的参数:
如果您想代表两个不是朋友的应用用户呼叫此端点,那么您在发出请求时必须提供appsecret_proof parameter以及用户访问令牌。这意味着您必须从服务器调用此端点。
看起来这可能是个好主意。
答案 1 :(得分:1)
管理以找到解决方案并且它正在运行。如果你在你和其他人的电话中工作,而你们两个都是Facebook上的朋友,你需要做的是创建Appsecret
代表App secret key found on Facebook Dev under My Apps
和令牌。您可以通过运行来创建此密钥:
$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);
然后将令牌和密码作为参数传递给呼叫:
Bundle params = new Bundle();
params.putString("appsecret_proof", appsecret_proof);
params.putString("access_token", access_token);
答案 2 :(得分:1)
它适用于2位不是朋友的用户。
这是facebook共同朋友API的一个工作示例:
curl -G -d "access_token=<access_token>" -d "appsecret_proof=<appsecret_proof>" 'https://graph.facebook.com/v2.5/{user-id}?fields=context.fields(mutual_friends)'
App秘密证明是用户访问令牌的sha256,其中app secret为密钥。
请记住,用户应该使用您的应用。 响应将包含同时使用您的应用和给予朋友列表权限的用户。
如果您想查找有关共同朋友的具体信息,请尝试以下方法:
curl -G -d "access_token=<access_token>" -d "appsecret_proof=<appsecret_proof>" 'https://graph.facebook.com/v2.5/{user-id}?fields=context.fields(mutual_friends.fields(id,name,picture.type(large)))'
这将返回所有共同朋友的id,姓名和当前个人资料图片链接。你不需要这张照片的照片许可。
答案 3 :(得分:0)
Facebook API不允许此功能: https://developers.facebook.com/bugs/346462608889036/
答案 4 :(得分:0)
这是一个老问题,但现在我已经处理过了,所以我会写...
如果你不是他的朋友那就得到所有共同的朋友 这里提到的服务器(在我的例子中是它的Node): https://developers.facebook.com/docs/graph-api/reference/user-context/all_mutual_friends/
获取user-2和您的auth-id的令牌,同时生成appsecretProof 和来自您应用的Facebook管理面板的clientSecret。
https://graph.facebook.com/v2.10/${auth_userId}?
fields=context.fields%28all_mutual_friends.limit%28100%29%29
&appsecret_proof=${appsecretProof}&access_token=${accessToken}
记得在用户登录时询问用户的权限,并向Facebook发送应用评论以批准此功能。
拥有'user_friends'权限,您只能从客户端获取在您的应用中使用但不是所有共同朋友的共同朋友。