0

I am using this simple FB connect

<a href="#" onclick="fb_login();">Connect</a>

window.fbAsyncInit = function() { FB.init({ appId : 'YOUR_APP_ID', oauth : true, status : true, // check login status cookie : true, // enable cookies to allow the server to access the session xfbml : true // parse XFBML });

};

function fb_login(){
    FB.login(function(response) {

        if (response.authResponse) {
            console.log('Welcome!  Fetching your information.... ');
            console.log(response); // dump complete info
            access_token = response.authResponse.accessToken; //get access token
            user_id = response.authResponse.userID; //get FB UID

            FB.api('/me', function(response) {
                user_email = response.email; //get user email
                console.log(response); 

            });

        } else {
            //user hit cancel button
            console.log('User cancelled login or did not fully authorize.');    
        }
    }, {
        scope: 'email'
    });
}
(function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
}());

When I connect, it only returns me

Object {name: "my name here", id: "102xxxxxxxx230"}

How can I retrieve email address ?

andyrandy
  • 72,880
  • 8
  • 113
  • 130
yarek
  • 11,278
  • 30
  • 120
  • 219

1 Answers1

6
FB.api('/me', {fields: 'name,email'}, function(response) {
    user_email = response.email; //get user email
    console.log(response); 
});

It´s called "Declarative Fields", see changelog: https://developers.facebook.com/docs/apps/changelog#v2_4

andyrandy
  • 72,880
  • 8
  • 113
  • 130