php - 用户在 Facebook 上注销,JS SDK 停止工作

标签 php sdk facebook

我知道周围有类似的问题,但似乎没有一个能完全解决我遇到的问题或指的是较旧的非 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/

相关文章:

Facebook Messenger API "request body undefined"

php - Mysql计算两个字符串

iphone - textFieldShouldBeginEditing + UIKeyboardWillShowNotification + OS 3.2

iphone - Facebook SDK 2.0 的 Facebook OAuth 登录问题

android - 2 GCM registrationId 相同的 android 应用程序

java - Android 错误随机 java.lang.NoClassDefFoundError : com. facebook.internal.Utility

javascript - Woocommerce,将产品添加到购物车,请求失败

php代码以两种不同的显示方式显示行

php - mysql中的html和css

javascript - Conceal Div 内的社交媒体按钮