1

我正在使用 php sdk 开发 facebook 应用程序。我的应用程序有一个小问题,在用户登录我的应用程序后,如果用户从新的浏览器选项卡注销 facebook,之后我的应用程序上的任何操作都应重定向回登录页面,说明用户已注销. 但就我而言,我的应用程序仍在运行,即使他已注销。所以任何人都可以帮助我解决这个问题。

注意:
我没有在我的应用页面中使用任何注销 URL。我可以通过调用直接销毁会话$facebook->destroySession(),但我不知道如何有条件地这样做,因为我不知道用户何时注销 facebook(在新的浏览器选项卡中打开)

4

2 回答 2

0

如果我从 Facebook 注销,而我的应用程序在 iframe 中运行,在另一个选项卡中,我会从 Facebook 获得一个模式对话框“登录以继续”。(使用铬)

如果同一应用程序在另一个选项卡中的 Facebook 外部(无 iframe)运行,并且我从 Facebook 注销,我的应用程序检测到 Facebook 会话已结束。

那是因为如果有有效的 Facebook 用户,我会检查每个页面加载;-)

我的猜测是,如果用户登录,您不会检查每个页面加载.....

(或者你有一个有趣的浏览器,它不会在标签或其他东西之间共享 cookie)

于 2012-12-29T17:47:22.840 回答
0

我有完全一样的问题。我找不到检测用户是否使用 PHP SDK 登录的方法。但是,当我结合 JS SDK 时,它可以检测到会话并正确设置 cookie。然后我使用 PHP SDK 选择 cookie/会话。

如果您使用我的解决方案,请小心。使用组合的 JS 和 PHP SDK,AccessToken 似乎失去了它的持久性。我遇到的问题是出现以下错误: OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。

阅读后,我发现这是一个但在 SDK 的 pull 48 上得到了修复: https ://github.com/facebook/facebook-php-sdk/pull/48

这部分有帮助,但现在我收到此错误: OAuthException:验证访问令牌时出错:会话已在 unix 时间过期

摘要:组合 SDK 似乎可以解决您的问题,但 API 显然有问题。我正在继续我的研究,并会在我得到解决方案时发布。

期待听到其他人为解决此问题所做的工作

于 2013-01-20T05:14:29.357 回答