【问题标题】:Facebook auth.statusChange not firing after dialog in IEFacebook auth.statusChange 在 IE 中的对话框后未触发
【发布时间】:2013-01-24 02:18:02
【问题描述】:

我正在使用 FB JS auth SDK 的网站上工作,仅在用户单击“使用 Facebook 登录”按钮时登录用户,而不是在页面加载或任何内容时自动登录用户。因此,我在 FB.init 中将“状态”设置为 false。

以下是我的实现:

window.fbAsyncInit = function() {
    FB.init({ 
        appId: '73092430896', 
        status: false, 
        cookie: true, 
        xfbml: true, 
        oauth: true,
    });  

    // listen for and handle auth.statusChange events
    FB.Event.subscribe('auth.statusChange', function(response) {
        console.log('login called.');
        if (response.authResponse) { 
            console.log('repsonse is set.');                    
            if(typeof APPJS.login != 'undefined' && typeof APPJS.login.loginCallback == 'function'){
                console.log('login.callback exists.');
                APPJS.login.loginCallback(response);
            }   
        }
    });            
};

问题是,auth.statusChange 回调没有在 IE 中触发(我尝试过的任何版本),因此我的用户没有通过我的自定义 JS 函数登录。它在 Chrome、Safari 和 Firefox 中运行良好。这与在这些浏览器中登录/退出 Facebook 无关,我尝试过登录和退出 Facebook,但 IE 仍然没有调用回调。

感谢任何帮助。

更新:添加通道参数似乎无法解决问题。

【问题讨论】:

    标签: javascript html facebook callback facebook-javascript-sdk


    【解决方案1】:

    请参阅此页面上的“在页面加载时检查用户状态”部分: http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

    它说你应该在 FB.init 调用中设置“status: true”。

    【讨论】:

    • 但仅当您想在页面加载时自动登录(如果已经登录到 Facebook),对吗?我将它设置为 false 是因为我只希望它在用户单击登录按钮时进行检查,因为我的服务器处理自己的会话并且只需要 Facebook 来验证用户的初始登录。
    猜你喜欢
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多