【发布时间】:2017-05-11 20:36:27
【问题描述】:
我正在尝试为我的 Web 应用程序构建 Facebook 登录,但我无法检索已记录的个人资料电子邮件。我已经尝试使用不同的帐户进行测试,但他们都无法返回个人资料电子邮件,并且所有个人资料都有在 Facebook 上注册的有效电子邮件。当我被重定向到 Facebook 登录页面时,该框要求正确共享电子邮件地址,但我仍然没有收到电子邮件!
这里获取登录网址
$helper = $fb->getRedirectLoginHelper();
$permissions = array('email', 'user_likes');
$loginUrl = $helper->getLoginUrl('url', $permissions);
这里是回调代码:
$APPID = 'appid';
$APPSecret = 'appsecret';
$fb = new \Facebook\Facebook([
'app_id' => $APPID,
'app_secret' => $APPSecret,
'default_graph_version' => 'v2.5',
]);
$helper = $fb->getRedirectLoginHelper();
if($accessToken){
$fb->setDefaultAccessToken($accessToken);
$response = $fb->get('/me?fields=email');
$userNode = $response->getGraphUser();
var_dump($userNode);
echo $userNode->getProperty('email');
}
结果:
object(Facebook\GraphNodes\GraphUser)#66 (1) { ["items":protected]=> array(1) { ["id"]=> string(15) "........" } }
使用此代码,我只能获取用户的 ID 或名称,从请求的 url 中删除 ?fieds=email
我做错了什么?
【问题讨论】:
-
我也遇到了同样的问题,你找到解决办法了吗?
标签: php facebook email facebook-graph-api