Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php FacebookGraphAPI共同好友_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Php FacebookGraphAPI共同好友

Php FacebookGraphAPI共同好友,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,使用Facebook graph API,我试图检索2个用户的共同好友数。然而,我却得到了其中一位朋友的数量 这是我的密码: <?php $mutual_array = json_decode(file_get_contents("https://graph.facebook.com/".$fb_id."/mutualfriends/".$other_fb_id."?".$access_token), true); $mutual_friends = $mutu

使用Facebook graph API,我试图检索2个用户的共同好友数。然而,我却得到了其中一位朋友的数量

这是我的密码:

    <?php

    $mutual_array = json_decode(file_get_contents("https://graph.facebook.com/".$fb_id."/mutualfriends/".$other_fb_id."?".$access_token), true);

    $mutual_friends = $mutual_array['data'];
    $mutual_number = count($mutual_friends);

    ?>

$mutual_number给出了$other_fb_id用户拥有的facebook好友数。当我尝试打印$mutual\u friends时,它会提供用户所有的朋友


有人知道这是怎么回事吗?谢谢。

在您的代码中,高于$fb\u的id必须是当前登录用户id,或者必须是您的应用程序用户。Facebook api不允许获得任何x-y-z用户的共同好友,直到他们加入您的应用程序

测试一下

或者,如果您有两个用户的朋友,您可以使用PHP函数从两个朋友数组中获取公共ID

$result = array_intersect($user1_friends_array, $user2_friends_array);
print_r($result);

听起来你的两个用户id是一样的。你100%确定他们没有吗???

这是一个facebook api错误。即使信息是对称的,要获得共同朋友的数量,您必须使用当前用户(用户a)的访问令牌,而不是您正在检查的其他用户的访问令牌。

答案很简单。您唯一要做的就是更改您的facebook id和朋友的facebook id的放置顺序:

$mutual_array = json_decode(file_get_contents("https://graph.facebook.com/".$other_fb_id."/mutualfriends/".$fb_id."?".$access_token), true);

使用graph api,可通过请求:

me/mutualfriends?user=SOME\u user\u ID


如果您和某个用户ID有共同的朋友,您将获得朋友列表。

您忘记了
访问令牌=
参数:

$mutual_array = json_decode(file_get_contents("https://graph.facebook.com/".$other_fb_id."/mutualfriends/".$fb_id."?access_token=".$access_token), true);

当前$fb_id确实是我代码中当前登录的用户。在explorerWell中也是一样,我可以看到您的代码没有任何问题。正如其他人所建议的那样,尝试图形浏览器并检查是否可以在那里得到正确的响应。使用“/me/mutualfriends/”。。如果你不能让它工作,请在developers.facebook.com/bugs上提交一个bug并在这里ping我。我现在正在旅行,很难检查这个。刚刚也向fb报告了。或者我使用了错误的访问令牌?我使用的是当用户登录应用程序时从fb那里得到的一个,我很确定这没有坏(我是Facebook平台fwiw的工程师)。刚试过,但在我的iPhone上很棘手;)只要$fb_id是访问令牌所属的用户,访问令牌就可以。用“/me”来代替,在这个istanceoh cool中它更有意义。谢谢,我改成“我”。我还更改为用户1的另一个访问令牌(我使用的是用户2的访问令牌,现在我知道这不起作用,尽管我不确定为什么,它应该双向)。不管怎么说,它现在起作用了。谢谢很高兴你成功了,你应该接受其他人的回答,他马上就解决了问题;)虽然A&B和B&A之间的共同好友是同一组,但访问令牌始终引用第一个边缘。当您出错时,我们真的应该抛出oauth异常。您是否介意更新您的bug,详细说明您是如何修复它的,以及我们如何抛出错误的。给我bug id,我会在