我正在使用 facebook JS SDK 进行用户登录。我对它是如何工作的感到困惑。当我使用此代码时:
FB.init({
appId : '*********************************',
channelURL: '*********************************',
cookie : true,
xfbml : true,
oauth : true
});
FB.getLoginStatus(function(response){
if(response.status == 'connected') {
}
else if(response.status == 'not_authorized') {
/* Not Authorized */
login();
}
else {
/* Not Logged In*/
/*login();*/
}
});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
FB.Event.subscribe('auth.logout', function(response) {
window.location.reload();
});
}; /* method window.fbAsyncInit ends here*/
/* Checks user login status on facebook*/
function login(){
FB.login(function(response) {
if (response.authResponse) {
//connected
}
else {
//cancelled
}
}, {scope: 'email'});
} /*function login ends here*/
我无法获取用户电子邮件 ID。
如果我使用这个,它会给我用户电子邮件 ID。
FB.init({
appId : '********************',
channelURL: '********************',
cookie : true,
xfbml : true,
oauth : true
});
FB.getLoginStatus(function(response){
if(response.status == 'connected') {
/* Connected Successfully */
FB.login(function(response) {
// handle the response
if (response.authResponse) {
}
else {
//cancelled
}
}, {scope: 'email,user_likes'});
}
else if(response.status == 'not_authorized') {
/* Not Authorized */
login();
}
else {
/* Not Logged In*/
/*login();*/
}
});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
FB.Event.subscribe('auth.logout', function(response) {
window.location.reload();
});
}; /* method window.fbAsyncInit ends here*/
/* Checks user login status on facebook*/
function login(){
FB.login(function(response) {
if (response.authResponse) {
//connected
}
else {
//cancelled
}
}, {scope: 'email,user_likes'});
} /*function login ends here*/
我正在获取电子邮件 ID。
请指出我在第一个代码中做错了什么?
编辑:根据建议,我在登录功能中添加了 {scope: 'email,user_likes'} 但仍然无法正常工作。
谢谢