我正在使用 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 仍然没有调用回调。
任何帮助表示赞赏。
更新:添加通道参数似乎无法解决问题。