我知道周围有类似的问题,但似乎没有一个能完全解决我遇到的问题或指的是较旧的非 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。因为我仍然有带有访问 token 的“fbsr_xxxxxxxxxx”cookie,所以我可以继续通过 PHP SDK 进行 API 调用,但 JS SDK 变得完全没有响应。方法要么提示没有访问 token ,要么无法完全运行其回调函数。
我是否遗漏了一些非常明显的东西?我非常困惑,所以非常欢迎任何帮助。
模糊邓禄普
最佳答案
你需要有一个不会过期的 token ,你可以使用离线访问权限来获得它,这样你就可以从你的应用程序访问用户的详细信息,即使当用户退出 facebook 时,这也有效,直到用户不改变他的密码,如果他这样做,你必须再次 请求新 token 。
关于php - 用户在 Facebook 上注销,JS SDK 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7688870/