3

从去年开始,我一直在开发 Facebook 应用程序。在 Facebook 2012 年 12 月更改之前,它运行良好。但现在我遇到了 Facebook 会话的问题。我已经用新的 SDK 替换了旧的 SDK,的写法是

避免尝试重复使用已用过的授权码

因此,当使用授权代码时,用户会话将从我的站点到期。(之后我得到授权错误)。

用户每 5-6 分钟从我的应用程序中注销一次,因此我必须再次将用户重定向到 loginurl 并刷新页面,这对我的网站不利,因为我在所有链接上都使用了Ajax调用。

我也看到了一些应用程序在 12 月更改后运行良好。(例如,Wrapp.com)。Wrapp.com 在验证码到期后不会重定向用户。而且我也可以在登录 10 分钟后使用 Wrapp.com 在 Facebook 上发帖而无需重定向。Wrapp.com 如何处理身份验证?解决办法是什么?

4

2 回答 2

1

避免使用 PHP SDK 使 Ajax 和 Iframe 页面的会话过期。


经过大量研究和测试,在 iframe 或 Ajax 页面中使用 PHP SDK “3.2.2” 加载画布或页面选项卡,如果调用的页面加载超过一次,将清除应用程序的会话。

例子:

您的页面选项卡在其自身包含的 PHP SDK 中加载一个 iframe,并且您的用户与 iframe 交互。第二个页面加载时的 iframe 将清除当前的应用程序会话。

解决方案:

从应用程序中的 Ajax 和 iframe 页面中删除 PHP SDK 并改用cURL

如果您的应用程序中的 iframe 页面需要用户身份验证信息,建议在用户登陆页面选项卡/画布时创建 cookie 或会话或上传用户身份验证。在需要用户查看或交互的地方使用此切换内容。

于 2013-01-30T23:35:03.937 回答
1

你有两种方法:

  1. 您可以使用删除 offline_access 权限中描述的场景 4 技巧来扩展用户访问令牌。

  2. 就我而言,我将我的应用程序设置为桌面,所以我有一个 90 天后过期的令牌:

在此处输入图像描述

于 2013-01-30T11:36:23.867 回答