3

我正在使用 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);
            }   
        }
    });            
};

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

任何帮助表示赞赏。

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

4

1 回答 1

0

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

它说你应该在 FB.init 调用中设置“状态:真”。

于 2013-02-01T16:57:30.457 回答