javascript - Facebook Javascript sdk,需要按两次登录按钮

标签 javascript facebook authentication sdk facebook-login

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

最佳答案

What am I doing wrong?

您假设登录按钮立即完成登录,但事实并非如此。所以你的函数 login在实际登录之前被调用。

我的建议是:直接抛出 <fb:login-button>完全超越,实现 FB.login,并通过单击您自己的按钮来调用它......

关于javascript - Facebook Javascript sdk,需要按两次登录按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294662/

相关文章:

java - 如何在java中将facebook字符串timestampformate转换为时间戳ts?

PHP SDK - Facebook 注销

ios - Facebook iOS 应用程序如何在其 WebView 用户代理中知道移动运营商

azure - 如何在 Powershell 中向 Azure AAD 应用程序授予管理员同意?

reactjs - 在 react-admin 中未经身份验证时,如何防止仪表板内容闪烁?

javascript - 将右键单击事件发送到 Internet Explorer 8 文档中 iframe 中的元素

javascript - 使用 Object.assign 合并对象

android - 通过单点登录验证后移动到 Facebook 应用程序页面

javascript - Dojo EnhancedGrid & Store : Why isn't the options. 计数在过滤器打开时设置?

javascript - 根据第一个下拉列表的值创建额外的 react 选择下拉列表