我的印象是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);
答案 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;
现在,在拨打电话时,它只返回正在使用该应用的朋友。