2

我想使用 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 共同朋友=> 没有答案

如何通过 Facebook 的 Graph API 获得相互的朋友=> 该解决方案仅在两个用户是朋友时才有效,在我的情况下可能不是这样。

4

5 回答 5

1

我将自己实现这一点。我有一个类似的用例,两个用户可能不是朋友,但我想看看他们的哪些朋友是共同的。

显然,当两个用户不是共同的朋友时,您必须在来自服务器的 API 请求中包含一个“应用程序证明”参数:

如果您想代表两个不是朋友的应用用户调用此端点,那么您必须在发出请求时提供appsecret_proof 参数以及用户访问令牌。这意味着您必须从您的服务器调用此端点。

看起来这可能是一个好主意。

于 2015-06-20T17:08:00.830 回答
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);
于 2015-07-21T13:11:37.323 回答
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)'

应用秘密证明是用户访问令牌的sha256,以应用秘密为密钥。

请记住,两个用户都应该使用您的应用程序。响应将包含同时使用您的应用并获得好友列表权限的用户。

如果您想查找有关共同朋友的特定信息,请尝试以下操作:

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、姓名和当前个人资料图片链接。您不需要这张照片的照片权限。

于 2016-05-13T12:26:44.970 回答
0

Facebook API 不允许此功能: https ://developers.facebook.com/bugs/346462608889036/

于 2016-09-09T00:48:45.680 回答
0

这是一个老问题,但现在我已经处理了,所以我会写...

如果您不是他的朋友,要获得所有共同的朋友,只能从服务器(在我的情况下是节点)通过,如下所述: https ://developers.facebook.com/docs/graph-api/reference/user-context/all_mutual_friends /

获取 user-2 的令牌和您的 auth-id,还从您的应用程序的 Facebook 管理面板生成 appsecretProof 和 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”权限,您只能从客户端获得在您的应用中使用的共同朋友,但不能从所有共同朋友那里获得。

于 2017-08-24T08:45:05.040 回答