如何测试2012年12月与离线访问相关的重大变更?

时间:2012-12-04 02:00:28

标签: facebook facebook-authentication facebook-authorization

我们有一个产品,允许人们安排发布到Facebook的帖子。我们依赖于离线访问权限,即12月5日scheduled to be removed

我们认为我们已经实施了正确的60天会话扩展逻辑,但是测试有困难。

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

我们尝试在不通过offline_access权限的情况下进行授权,但在5760(4小时)之后永远不会过期,因此似乎仍然需要通过。

我们非常希望测试突破性更改,但我们无法创建会话到期且必须不断扩展的方案。我们怎么测试呢?

2 个答案:

答案 0 :(得分:1)

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

首先,不要再问offline_access了。

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

enter image description here

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

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

enter image description here

注意:上一个屏幕截图中没有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

令牌交换的结果:

enter image description here

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

enter image description here

因此,只需将上述步骤转换为您的应用,记录令牌,然后在使用Debugger时检查这些令牌。

答案 1 :(得分:1)

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

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