FB.logout() 调用时没有访问令牌错误
Posted
技术标签:
【中文标题】FB.logout() 调用时没有访问令牌错误【英文标题】:FB.logout() called without an access token error 【发布时间】:2012-01-23 08:38:53 【问题描述】:我已将我的 js FB Connect 升级到 oauth 版本,当我尝试使用 FB.logout() 方法以编程方式从 FB 注销时,出现类似
的错误“在没有访问令牌的情况下调用 FB.logout()”
这背后的问题是什么?我在这里看到了一个thread,但它对我不起作用。如果有人找到解决方案,请帮助我。谢谢。
【问题讨论】:
我遇到了同样的问题。允许用户连接。如果没有发生页面刷新,用户可以使用 FB.logout 注销,并且它可以正常工作。但是,页面重新加载一次后,FB.logout 会触发控制台警告:“FB.logout() called without a access token” 【参考方案1】:这是我以前用过的。
//check if logout is
FB.getLoginStatus(function(ret)
/// are they currently logged into Facebook?
if(ret.authResponse)
//they were authed so do the logout
FB.logout(function(response)
//do your stuff here.
);
else
///do something if they aren't logged in
//or just get rid of this if you don't need to do something if they weren't logged in
);
【讨论】:
好一个!注销后如何/在哪里添加重定向?试图添加 FB.logout(function(response) ... 但在这种情况下我没有注销。你能帮忙吗? 文档中并不清楚,但是您需要调用 FB.login 之类的东西作为其他函数的回调。这个是getLoginStatus。在文档中显示它只是被自己调用的。【参考方案2】:我遇到了这个问题并解决了。
当用户已经注销并且我再次尝试使用 fb.logout() 方法时,这发生在我身上。它似乎在以下代码中:
FB.logout(function(response)
console.log(response.status);
);
response.status
会说“已连接”,即使用户已注销,由于某些缓存问题或其他错误。因此最好使用authResponse
来确定用户是否登录。即:
FB.logout(function(response)
if (! response.authResponse)
//disable logout button
);
【讨论】:
是的,这是对我有用的正确方法,尽管稍作修改,但想法是一样的。我投了赞成票。谢谢 这并不能解决facebook抱怨缺少访问令牌的问题以上是关于FB.logout() 调用时没有访问令牌错误的主要内容,如果未能解决你的问题,请参考以下文章