0

我需要迁移我的 FB 应用程序,使其不再使用该offline_access权限。access_token据我了解,一旦用户通过身份验证,服务器端 OAuth 应该返回一个 long-lived(60 天) 。

一旦这 60 天结束,我必须申请一个新的令牌。但是,我可以在不需要用户重新访问 Facebook 的情况下透明地执行此操作吗?我了解不会提示用户提供相同的权限,但是:

a)redirect_uri参数必须指向我可以处理 OAuth 请求的 URL,这使得透明操作变得困难

b) 我的许多 Graph API 调用都是从访问我的服务器的 AJAX 请求启动的。如果这些因令牌过期而被拒绝,我无法在不中断我的应用程序流程的情况下将用户重定向。

所以我的问题是,这可以以完全透明的方式完成吗?我假设答案是“不”,但每 60 天骚扰用户一次——特别是如果他们已经定期使用该应用程序 59 天——似乎有点矫枉过正。

4

1 回答 1

0

看起来答案确实是“否”……在场景 3下

注意:用户必须先访问您的应用程序,然后您才能获得有效的“授权代码”才能再次进行服务器端 OAuth 调用。应用程序将无法设置尝试自动延长过期时间的后台/cron 作业,因为“授权码”是短暂的并且已经过期。

我们面临着同样的问题,看起来我们将被迫每 60 天对用户进行一次 bug。值得庆幸的是,这是我们系统中相对较小的一部分,所有 AJAX 调用都是对我们的服务器进行的,这些服务器依次查询 fb - 所以我们在那里有一个抽象层,我们可以在其中交回缓存的数据/控制消息来管理应用程序流这给了我们一些回旋余地,可以优雅地失败,直到我们可以存储待处理的数据并适当地重定向用户。

顺便说一句,值得注意的是,根据路线图 offline_access,将于 2012 年 10 月 3 日正式弃用。

于 2012-09-17T11:49:37.990 回答