1

我有一个带有 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 的登录按钮,然后它会重定向我。我究竟做错了什么?

4

1 回答 1

0

我究竟做错了什么?

您假设登录按钮立即通过登录完成,但事实并非如此。因此,您的函数login在登录实际发生之前被调用。

我的建议是:<fb:login-button>完全放弃,实现 FB.login,然后单击您自己的按钮调用它……</p>

于 2012-07-02T17:53:44.790 回答