【问题标题】:User logs out on Facebook, JS SDK stops working用户在 Facebook 上注销,JS SDK 停止工作
【发布时间】:2011-10-07 14:44:23
【问题描述】:

我知道周围有类似的问题,但似乎没有一个问题能完全解决我遇到的问题,或者指的是较旧的非 OAuth 版本的 SDK。

我正在使用 Facebook 提供的 JS 和 PHP SDK。使用 JS 完成身份验证,然后设置一个允许 PHP SDK 进行身份验证的 cookie,如 Facebook 推荐的那样。

直到用户在他们的网站上退出 Facebook(即他们不在我的网站上使用 FB.logout 方法)之前,这种方法都非常有效。 auth.statusChange、auth.authResponseChange 或 auth.logout 方法都不会立即或在下一个页面加载时触发。但是,我可以看到,即使我在 Facebook 网站周围单击,cookie 也会被更改(但不是 fbsr_xxxxxxxxxx 用于签名请求的那个)。

我的困难是,在下一页加载时,我不知道用户退出了 Facebook。因为我仍然有带有访问令牌的 'fbsr_xxxxxxxxxxxx' cookie,所以我可以继续通过 PHP SDK 进行 API 调用,但 JS SDK 变得完全没有响应。方法要么抱怨没有访问令牌,要么无法完全运行它们的回调函数。

我在这里遗漏了一些非常明显的东西吗?我完全感到困惑,所以非常欢迎任何帮助。

模糊邓禄普

【问题讨论】:

  • 自从搬到 Oath 后我也遇到了同样的问题。您在这个问题上取得了任何进展吗?
  • 恐怕不是。我想我可能不得不手动触发 FB.Cookie.clearSignedrequestCookie() 方法。另外,是的,我在使用 OAuth 版本之前也没有这个问题。
  • 在我看来,您的 auth.authResponseChange 代码可能有问题。您可以发布您尝试使用的内容吗?它立即为我触发
  • 这样的事情真的很简单:FB.Event.subscribe('auth.authResponseChange', function(response) { alert('auth reponse change'); window.location.reload(); } );需要明确的是,当用户退出 Facebook 与您的网站交互时,您会触发事件吗?大概不是马上,而是在下一页加载?我不明白这个。 cookie 仍然存在,但 JS SDK 停止工作。
  • 我的问题是特定于注销。当用户首先从 FB 注销时,注销 js 因无效令牌错误而失败。我已通过将以下内容更改为:<a href="javascript:fb_logout();">Log Out</a> (js) var fb_logout = function(){ FB.logout(function(response) { document.location = "http://mysite.url/logout"; }; }; 来解决我的问题:@987654323 @(js)var fb_logout = function(){ FB.logout(function(response) { }); };现在不依赖FB的响应了

标签: php sdk facebook


【解决方案1】:

您需要有一个不会过期的令牌,您可以使用离线访问权限获得该令牌,这样即使用户退出 facebook,您也可以从您的应用程序访问用户详细信息,并且在用户不更改他的之前也可以使用密码,如果他这样做,你必须再次 请求新令牌。

【讨论】:

  • 拥有一个不会过期的令牌让我可以继续使用 PHP API,这不是我真正的问题。我遇到的问题是,当用户退出 Facebook 但我没有收到任何通知时,JS SDK 停止工作(即使使用未过期的令牌)。
  • 我不确定您是否真的需要离线访问才能解决此问题。有更好的方法,这对我来说似乎有点矫枉过正,离线访问基本上表明您的用户想要在他们睡觉时收集他们的数据......
  • 确实如此。无论如何,我可能需要离线访问,但我会尝试在没有它的情况下进行测试,看看它是否会导致问题。
  • 使用任何 sdk,但如果你没有离线访问权限并且用户从 facebook 注销。,用户也会从你的应用程序中注销
  • @user995275 这听起来正是离线访问所没有的。除了 JS SDK,离线访问允许您在他们离线时继续访问他们的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 2012-03-28
  • 2018-09-05
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
相关资源
最近更新 更多