Facebook PHP Api,无法收到电子邮件

时间:2015-10-28 10:04:24

标签: php facebook email facebook-graph-api

我正在尝试为我的网络应用程序构建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或名称,从请求网址中删除?fieds=email

我做错了什么?

3 个答案:

答案 0 :(得分:0)

您是否尝试从网页上获取所有电子邮件? 或者使用您申请的人的电子邮件??

答案 1 :(得分:0)

/ me?fields = email 更改为 / {user-id}?fields = email < / p>

检查您的许可是否正确

更新1:

你的请求网址就像这样做

https://graph.facebook.com/v2.5/ {User-ID的字段} = email和安培; =的access_token {接入令牌}

答案 2 :(得分:0)

我明白了。 有时,Facebook不会发回用户的电子邮件。当用户未验证电子邮件时,它会附加。当它发生时,您可以只显示电子邮件的表单。