[英]Facebook Javascript sdk, need to press login button twice
我有一個帶有onclick事件的Facebook登錄按鈕。
<fb:login-button scope="email, user_about_me, user_birthday" onclick="login()">Login with Facebook</fb:login-button>
如果單擊它,則代碼:
function login(){
FB.getLoginStatus(function(response) {
if (response.status === "connected") {
FB.api({
method: 'fql.query',
query: 'SELECT name, email, pic_square FROM user WHERE uid=me()'
},
function(response) {
var check = $.get("includes/facebook_login.php", {command:response[0].email, commandP:response[0].pic_square}, //check if users exist with some selects and create sessions
function(data){
if(data == 1){ //on facebook_login.php echo 1 if user exists in our db. if so, redirect.
FB.Dialog.remove(FB.Dialog._active);
window.location="wishlist.php";
}
else if(data == 0){
$("#fb_error").dialog("open");
}
});
}
);
}
}, true);
}
代碼可以毫無問題地觸發Facebook登錄。 但是,如果此代碼完成,則不會將我重定向到下一頁(wishlist.php)。 我需要再次單擊Facebook上的登錄按鈕,然后它將重定向我。 我究竟做錯了什么?
我究竟做錯了什么?
您假設登錄按鈕立即完成了登錄,但不是 。 因此,您的函數login
實際上是在登錄之前被調用的。
我的建議是:將<fb:login-button>
完全扔掉,實現FB.login,然后單擊您自己的按鈕即可調用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.