所以,我已经创建了你的标准facebook测试应用程序。它有javascript SDK加载块和后面的代码:
window.fbAsyncInit = function()
{
console.log('initiating FB');
FB.init({
appId: appID,
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true // parse XFBML
});
FB.Event.subscribe(
'auth.authResponseChange',
function(response)
{
console.log('authResponseChange', response);
if (response.status === 'connected')
{
console.log('logged in');
}
else
{
console.log('not logged in');
}
}
);
};
问题:使用我的开发帐户,每个console.log()
都会按预期记录。如果帐户与应用程序没有任何关联,则只会记录“启动FB”,之后不会发送任何内容,即使是status: true
。为什么会这样?
答案 0 :(得分:0)
没关系,因为州没有变化。
当身份验证响应发生更改时,将触发
auth.authResponseChanged
事件。authResponse
是查询人员身份验证状态时返回的响应对象的一部分。它包含人员访问令牌,当令牌到期时以及该人的用户ID。
对于应用程序用户,当您运行应用程序状态时,由于您已设置status: true
,因此状态已更改为登录,因此会触发此事件并获得logged in
并进入会话。
但是当您为未登录/非应用程序用户运行应用程序时,由于状态未更改,此事件将不会触发。这是"未登录"或"未授权"早些时候和现在一样。
当您为未登录的用户/非应用用户呼叫facebook登录时,状态将会更改,您将看到您的日志为"已登录"或者"未登录"。