我计划在我的网站上使用以下PHP代码。我还需要获取用户朋友的Facebook ID,这些朋友以前也使用我的Facebook应用程序登录过我的网站。
我创建了一个应用程序,在"状态和评论"页面中,我可以看到电子邮件、public_profile和user_friends权限。当我尝试只使用"/me"发出请求时,我可以获得用户ID和firstname,lastname。所以它运行良好。但当我尝试使用"/me/friends"时,下面的代码返回一个空数组。虽然这对我来说不是很重要,但我也无法获得用户的电子邮件。
你们知道我怎样才能得到这些信息吗?我做错了什么?
提前谢谢。
FacebookFacebookSession::setDefaultApplication('MY_APP_ID', 'MY_APP_SECRET');
$facebook = new FacebookFacebookRedirectLoginHelper('MY_REDIRECT_URL_HERE');
$session = $facebook->getSessionFromRedirect();
$session = new FacebookFacebookSession($_SESSION['facebook']);
$request = new FacebookFacebookRequest($session, 'GET', '/me/friends');
$response = $request->execute();
$graphObject = $response->getGraphObject();
"状态和审查"选项卡中的权限只是意味着你不需要得到Facebook的批准,但你仍然需要在授权过程中请求它们。这就是"scope"参数的作用:https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/
顺便说一句,我不确定你是否知道,但你只能通过/me/friends获得授权你的应用程序的用户。因此,要么您没有正确授权用户使用user_friends权限,要么您只是没有任何朋友使用该应用程序。