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

Я использую ниже:

window.fbAsyncInit = function() {
    FB.init({
        appId      : 'my-app-id',
        xfbml      : true,
        version    : 'v2.7'
    });
};

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

и пытается получить информацию по электронной почте, как показано ниже:

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

Выходные данные: Nitesh Kumar — — — undefined

Как получить email пользователя?

1 ответ

  1. Вы должны запросить разрешение электронной почты в процессе входа в систему:

    FB.login(function(response) {
        if (response.authResponse) {
            //user just authorized your app
    
        }
    }, {scope: 'email'});
    

    Кстати, это было бы правильно (в том числе состояние искусства ES6 arrow функции тоже):

    FB.api('/me', {fields: 'name,email'}, (response) => {
         console.log(response.name + ' --- ' + response.email);
    });
    

    Больше информации: http://www.devils-heaven.com/facebook-javascript-sdk-login/