Не удается получить электронную почту пользователя с интеграцией Facebook

1

Я пытаюсь получить электронную почту пользователя после того, как они нажимают "Продолжить" на Facebook на моем сайте. Я смотрел Stackoverflow и через документацию разработчика для разработчиков Facebook и не вижу причины, почему то, что я пытаюсь, не работает.

JAVASCRIPT

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'
  });
}

** HTML **

<fb:login-button scope="public_profile,email" onlogin="checkLoginState();">
</fb:login-button>

Что толку меня больше всего, однако, что это тянет имя через и что, безусловно, работает.

Теги:
facebook

1 ответ

0
Лучший ответ

Вы получите адрес электронной почты только в том случае, если пользователь имеет подтвержденный набор в своем профиле.


И даже тогда, по-видимому, есть некоторые крайние случаи, когда параметры конфиденциальности все еще могут заставить его не возвращать его вообще. Конечно, у них может не быть одного набора, если они регистрируются только с помощью своего мобильного телефона. Если вам нужны приложения и адрес электронной почты, вы должны выполнить дополнительный шаг для ввода пользователем одного вручную. (В этом случае проверка также является вашей ответственностью.)

  • 0
    Приветствия для этого действительно помогли мне.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню