我需要使用offline_access
权限迁移我的FB应用程序。据我了解,服务器端OAuth应该在用户通过身份验证后返回长期(60天)access_token
。
这60天后,我必须申请一个新令牌。但是,我是否可以透明地执行此操作而无需用户重新访问Facebook?我知道不会提示用户提供相同的权限,但是:
a)redirect_uri
参数必须指向我可以处理OAuth请求的网址,这使得透明操作变得困难
b)我的许多Graph API调用都是从命中我服务器的AJAX请求启动的。如果由于令牌过期而拒绝这些令牌,我无法在不中断应用程序流的情况下将用户重定向。
所以我的问题是,这可以以完全透明的方式完成吗?我假设答案是'不',但每隔60天就会让用户烦恼 - 特别是如果他们经常使用应用程序59天 - 看起来有点过分了。
答案 0 :(得分:0)
确实看起来答案是“不”......在Scenario 3下
注意:用户必须先访问您的应用程序才能获得 一个有效的“授权码”,可以使服务器端OAuth 重拨。应用程序将无法设置后台/ cron作业 尝试自动延长到期时间,因为 “授权代码”是短暂的,并且已经过期。
我们面临同样的问题,看起来我们将被迫每60天对用户造成一次错误。值得庆幸的是,这是我们系统的相对次要部分,并且所有AJAX调用都发送到我们的服务器,而这些服务器又查询fb - 所以我们在那里有一层抽象,我们可以在那里交回缓存的数据/控制消息以管理应用程序流,这使我们在优先失败方面有一些摆动空间,直到我们可以存储待处理数据并适当地重定向用户。
顺便提一下,值得注意的是,根据roadmap offline_access
将于2012年10月3日正式弃用。