Facebook在我认为条款发生变化时会显示所有朋友?

时间:2014-10-27 21:28:14

标签: facebook facebook-graph-api

我的印象是Facebook只发布了现在使用某个应用程序的朋友列表。

事实上,在这种情况下,我想要的只是,但FB正在为我测试的所有用户返回所有朋友。

我使用fields=installed,但似乎没有任何区别。

以下是我正在使用的代码,有没有办法只显示使用该应用的用户的朋友?

$fb_user = $mysqli->real_escape_string($_REQUEST['user']);

$facebook = new Facebook(
    array( 
            'appId'  => $appID, 
            'secret' => $secret 
    )
);

//TO GET ACCESS TOKEN
$facebook->setExtendedAccessToken();
$access_token = $facebook->getAccessToken();

$fbFriends = 'https://graph.facebook.com/'.$fb_user.'/friends?fields=installed&access_token='.$access_token;

$friendsList = json_decode(file_get_contents($fbFriends),true);

3 个答案:

答案 0 :(得分:3)

您可能正在使用较旧的应用程序(在2014年4月底之前创建)。只需创建一个新的,你也只会得到使用该应用程序的朋友。在2015年4月底之前,仍然可以让所有朋友使用较旧的应用程序。

对于较旧的应用,您仍然会收到所有与您通话的朋友,但根据此主题,结果中应该有一个“已安装”字段:Facebook 'Friends.getAppUsers' using Graph API

答案 1 :(得分:1)

如果您仍在使用Facebook 1.0 API,则可以将您的应用转换为使用2.0 API或2.1 API。

https://developers.facebook.com/docs/apps/upgrading/

根据您使用的平台(网络,安卓或IOS),流程会有所不同,只需按照该指南中的步骤操作,修复任何不再符合新API的API调用,您就可以获得所需的API朋友名单。

由于某些功能的返回结果中的API更改,您可能需要做一些工作来修复您的应用以使用新API。但是,您最终需要进行升级(API v1.0将于2015年4月逐步淘汰),因此您也可以尽早启动。

答案 2 :(得分:0)

感谢所有答案,这非常简单。

我现在至少要在2016年至少之前证明我的应用,只需将v2.1添加到数据收集网址,如下所示:

$fbFriends = 'https://graph.facebook.com/v2.1/'.$fb_user.'/friends?access_token='.$access_token;

现在,在拨打电话时,它只返回正在使用该应用的朋友。