无法通过facebook集成获取用户电子邮件

时间:2017-06-06 09:07:07

标签: javascript facebook

在我的网站上按“继续使用Facebook”后,我试图收到用户的电子邮件。我查看了Stackoverflow并通过Facebook Developer文档,看不出为什么我正在尝试的东西不起作用。

JAVASCRIPT

moment.tz(xlsxDate, "M/D/YYYY h:mm a",  "America/New_York").tz("Africa/Accra")

** HTML **

window.fbAsyncInit = function() {
  FB.init({
    appId      : '1882306058687148',
    cookie     : true,
    xfbml      : true,
    version    : 'v2.8'
  });
  FB.AppEvents.logPageView();
  FB.getLoginStatus(function(response) {
    statusChangeCallback(response);
  });
};

(function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

function checkLoginState() {
  FB.getLoginStatus(function(response) {
    console.log(response);
    statusChangeCallback(response)
  });
}

function statusChangeCallback(response) {
  console.log('statusChangeCallback');
  console.log(response);
  if (response.status === 'connected') {
    runAPI();
  }
}

function runAPI() {
  FB.api('/me', { locale: 'en_US', fields: 'name, email' }, function(response) {
    console.log(response);
    document.getElementById('name').value = response.name;
    document.getElementById('email').value = response.email;
    document.getElementById('fb-login').style.display = 'none'
  });
}

最令我困惑的是, IS 将名称拉了过来,这肯定有效。

1 个答案:

答案 0 :(得分:0)

如果用户在个人资料中设置了经过验证的电子邮件地址,您将只会收到一封电子邮件地址。

即使在那时,显然还有一些边缘情况,隐私设置仍然可以使其无法返回。当然,如果他们仅使用他们的手机注册,他们可能根本没有一套。如果您的应用需要和电子邮件地址,那么您应该实施一个额外的步骤,供用户手动输入一个。 (在这种情况下,验证也是您的责任。)