我正在使用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仍然没有调用回调。
感谢任何帮助。
更新:添加频道参数似乎无法解决问题。
答案 0 :(得分:0)
请参阅此页面上的“检查页面加载时的用户状态”部分: http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
它说你应该在FB.init调用中设置“status:true”。