【问题标题】:FB.logout() called without an access token errorFB.logout() 调用时没有访问令牌错误
【发布时间】: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”

标签: facebook logout


【解决方案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抱怨缺少访问令牌的问题
猜你喜欢
  • 2012-01-15
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
相关资源
最近更新 更多