无法从 facebook API v2.5 获取 Response.email 即使电子邮件在 App Reviews 中为绿色

Can't Get Response.email from facebook API v2.5 even email is green in App Reviews

无法从 facebook Response.email v2.5 获取 Response.email 即使电子邮件在 App Reviews 中也是绿色的。我使用了这个基本的 FB.api(),即使使用 SCOPE 它也没有 return EMAIL

FB.api('/me', function(response) {
    console.log(response);
});

首先确保 FB.login() 是用 scope: email 调用的,这样令牌才有权限访问用户的电子邮件。

然后,您应该在调用 /me 时明确提及字段 email,因为默认情况下它只会 return idname

  FB.api('/me?fields=email', function(response) {
      console.log(response);
  });

请求附加字段(id 和名称除外)的正确方法是:

FB.api('/me', {fields: 'email'}, function(response) {
    console.log(response);
});

当然,请确保您在范围内添加了email权限:

FB.login(function(response) {
    if (response.authResponse) {

    }
}, {scope: 'email'});

额外information.

顺便说一句,您可以测试 API 调用 here

确保你在登录时定义了"email"范围,然后你可以在询问时得到它graph.facebook.com:

$url = 'https://www.facebook.com/dialog/oauth';
$params = array(
    'client_id' => $this->strategy['app_id'],
    'redirect_uri' => $this->strategy['redirect_uri'],
    'scope' => 'email',
);

mybad,代码没有问题,我只是用应用程序的权限进行了重置。