【问题标题】:Facebook PHP Api, can't get emailFacebook PHP Api,无法收到电子邮件
【发布时间】: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


【解决方案1】:

您是否尝试从一个页面获取所有电子邮件? 或使用您的应用程序的人的电子邮件??

【讨论】:

  • 使用该应用程序的人的电子邮件
  • 那么我认为这不应该是问题,因为无论谁将使用您的应用程序登录,如果您有权限,您可以使用他的电子邮件。您是否提交了您的应用并且可以搜索??
【解决方案2】:

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

检查您的许可是否正确

更新 1:

你的请求网址喜欢这样做

https://graph.facebook.com/v2.5/{user-id}?fields=email&access_token={access-token}

【讨论】:

    【解决方案3】:

    我想通了。 有时,Facebook 不会发回用户的电子邮件。当用户未验证电子邮件时,它会附加。发生这种情况时,您可以只为电子邮件显示一个表单。

    【讨论】:

    • 我的电子邮件已通过验证但仍未发送
    猜你喜欢
    • 1970-01-01
    • 2021-04-29
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2015-06-27
    • 2010-12-09
    相关资源
    最近更新 更多