I'm logging in with fb only with js using facebook sdk. The login part is doing it right, but for some reason it just returns me name and id. Not returning email and other attributes I need. My code
<html>
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'XXXXXXXX', // Set YOUR APP ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
version : 'v2.3'
});
FB.Event.subscribe('auth.authResponseChange', function(response) {
if (response.status === 'connected') {
document.getElementById("message").innerHTML += "<br>Connected to Facebook";
//SUCCESS
}
else if (response.status === 'not_authorized') {
document.getElementById("message").innerHTML += "<br>Failed to Connect";
//FAILED
}
else {
document.getElementById("message").innerHTML += "<br>Logged Out";
//UNKNOWN ERROR
}
});
};
function Login()
{
FB.login(function(response) {
if (response.authResponse) {
getUserInfo();
}
else {
console.log('User cancelled login or did not fully authorize.');
}
},{ scope: 'email, user_about_me, user_birthday, user_hometown' });
}
function getUserInfo() {
FB.api('/me?fields=name,email,gender,birthday,link', function(response) {
console.log(response);
var str = "<b>Name</b> : " + response.name + "<br>";
str += "<b>Link: </b>" + response.link + "<br>";
str += "<b>Username:</b> " + response.username + "<br>";
str += "<b>id: </b>" + response.id + "<br>";
str += "<b>Email:</b> " + response.email + "<br>";
str += "<input type='button' value='Get Photo' onclick='getPhoto();'/>";
str += "<input type='button' value='Logout' onclick='Logout();'/>";
document.getElementById("status").innerHTML = str;
}, { scope: 'email, user_about_me, user_birthday, user_hometown' });
}
function getPhoto() {
FB.api('/me/picture?type=normal', function(response) {
var str="<br/><b>Pic</b> : <img src='"+response.data.url+"'/>";
document.getElementById("status").innerHTML+=str;
});
}
function Logout() {
FB.logout(function(){document.location.reload();});
}
// Load the SDK asynchronously
(function(d) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement('script');
js.id = id; js.async = true;
js.src = "http://connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
<div id="fb-root"></div>
<div align="center">
<h2 style="font-family:VERDANA">SmartPromos Login FB</h2>
<div id="status">
<br/>
<img src="http://donatetab.firstgiving.com/images/fb-login-button.png"style="cursor:pointer;" onclick="Login()"/>
</div>
<br/><br/><br/><br/><br/>
<div id="message">
</div>
</div>
</body>
</html>