簡體   English   中英

Facebook Javascript SDK,需要按兩次登錄按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM