Javascript 无法正确使用facebook JS SDK
我正在使用facebook JS SDK进行用户登录。我对它的工作原理感到困惑。当我使用此代码时:Javascript 无法正确使用facebook JS SDK,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我正在使用facebook JS SDK进行用户登录。我对它的工作原理感到困惑。当我使用此代码时: FB.init({ appId : '*********************************', channelURL: '*********************************', cookie : true, xfbml : true, oauth : tru
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
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
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',},但仍然不起作用
谢谢诀窍是添加{scope:'email,user_likes'}。。。 在第一段代码中,您缺少第二段代码中的这一部分。它将允许您获取用户的电子邮件id以及他的喜好 案例1:我无法获取用户电子邮件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*/
唯一的原因可能是用户在进行这些更改之前已获得授权。请尝试对新用户再次使用相同的代码,或者从您的应用程序中删除该应用程序。Hi ABCD,我已编辑了该问题,但它仍然不起作用。请更改为else{/*not loggin*/login();}….这是uncomment login()函数。您好,谢谢您的回复。我按照你说的做了,但仍然无法获取电子邮件id。请尝试使用
console.log
调试代码流。检查getLoginStatus()
中的response.status的值是多少,同时检查代码是否在FB.Login()
中移动。您好,Sahil,您是正确的。代码未移动到FB.Login()。谢谢你把我推向正确的方向。现在开始工作了。