【发布时间】:2012-02-07 17:00:10
【问题描述】:
我正在尝试使用 Facebook JS SDK 将用户从 facebook 中注销,但是调用:
FB.logout(function(response){
console.log(response);
});
返回: response.status == "已连接"
只有在刷新页面后,SDK 才会意识到会话已经结束。任何人都知道可能导致这种行为的原因是什么?这段代码以前在我的应用程序中运行,最近开始以这种方式运行。
另一个使用 FireBug 的例子:
【问题讨论】:
-
调用注销和刷新页面之前,如果您继续使用 Facebook,您是否仍然连接?如果您连续两次调用注销,它的响应是否相同? (如果不是,这不只是调用和响应之间的时间问题吗?)(而且,即使它没有回答“为什么”部分,你不能通过重新加载响应中的页面来解决这个问题吗?)哦,最后一个,“未定义”是我认为的另一个 console.log ?
-
@Flow' S,是的 'undefined' 是无关的控制台日志。 FB.logout() 确实将用户从 facebook 中注销,但当前页面 FB 对象直到刷新后才意识到这一点。我强烈希望不必在用户注销后手动刷新页面。我还尝试删除 fbsr_ cookie 以查看是否将其删除 - 没有效果。这以前有效,只是最近才改变。另外,我在使用 FB JS SDK 的 hulu.com 上尝试了相同的测试,结果相同。这可能是 SDK 中的错误吗?
-
我目前正在使用来自
FB.logout回调的FB.getLoginStatus来确保JS-SDK 忘记用户。 -
重要提示:FB API 有很多细微差别,在很多层面上。帮自己一个忙,在初级开发期间使用
https://connect.facebook.net/en_US/sdk/debug.js而不是https://connect.facebook.net/en_US/sdk.js。您将在控制台中看到可爱的蓝色调试消息,您可以按文件名 (debug.js) 进行过滤:-)
标签: javascript facebook facebook-javascript-sdk