Facebook auth.statusChange在IE中对话后没有触发

时间:2013-01-24 02:18:03

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

我正在使用FB JS auth SDK的网站上工作,只是在用户点击“使用Facebook登录”按钮时对其进行签名,而不是在页面加载时自动登录用户或任何内容。因此,我在FB.init中将'status'设置为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);
            }   
        }
    });            
};

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

感谢任何帮助。

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

1 个答案:

答案 0 :(得分:0)

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

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