1

我们有一个产品允许人们将帖子安排到 Facebook。我们依赖离线访问权限,计划于 12 月 5 日删除。

我们认为我们已经实现了正确的 60 天会话扩展逻辑,但在测试时遇到了困难。

我们创建了一个新的测试 Facebook 应用程序并启用了“2012 年 12 月重大变更”迁移设置。新用户授权新应用程序(我们仍然请求offline_access许可)。然后我们扩展会话,它返回相同的会话令牌,没有expires参数。当我们使用Access Token Debugger时,它表示令牌永不过期。

我们尝试在没有通过offline_access许可的情况下进行授权,但永远无法超过 5760(4 小时)的到期时间,因此似乎仍然需要通过。

我们非常想测试重大更改,但我们无法创建会话过期且必须不断扩展的场景。我们如何测试这个?

4

2 回答 2

1

是的,我以前测试过这个。以下是使用调试器和浏览器测试 60 天令牌的步骤。您可以为您的应用程序调整这些调用,并使用一些服务器端日志记录将令牌复制粘贴到调试器中以确认令牌的到期日期。

首先,不要再要求offline_access了。

使用Graph API Explorer获取访问令牌。设置Application:为您的应用程序。下面,我的应用程序被称为 ES1:

在此处输入图像描述

(只有您是管理员或开发人员的应用程序才会出现在“应用程序”列表中)

单击“调试”按钮并确认您有一个短期令牌:

在此处输入图像描述

注意:offline_access上一个屏幕截图中没有烫发。

执行此调用以将短期令牌交换为长期令牌。我只是将其粘贴到浏览器中。您将在您的应用程序代码中包含以下内容:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=APPID&client_secret=APPSECRET&fb_exchange_token=SHORT_LIVED_TOKEN

代币兑换结果:

在此处输入图像描述

您可以将此新令牌粘贴到调试器中以确认它在 60 天后过期:

在此处输入图像描述

因此,只需将上述步骤转换到您的应用程序中,记录令牌,并在进行过程中使用调试器检查这些令牌。

于 2012-12-04T04:08:51.673 回答
1

解决方案是还必须启用第二个迁移设置“删除 offline_access 权限”。只有启用“2012 年 12 月重大变更”迁移设置后,您的应用程序才能获得 60 天的会话令牌。

这具有将现有永不过期的会话令牌立即转换为 60 天到期的令牌的不幸副作用。Facebook 表示他们将继续尊重现有的永不过期的令牌,但鉴于必须启用这两个设置,您的应用程序被迫将所有用户视为拥有 60 天的令牌。

于 2012-12-04T20:27:40.107 回答