我正在考虑在cron工作即将到期之前自动为我的所有用户续订Facebook access_tokens,作为其中的一部分,我一直在阅读以下关于离线访问的链接:https://developers.facebook.com/roadmap/offline-access-removal/ In该链接说明如下:“注意:用户必须先访问您的应用程序,然后才能获得有效的”授权代码“才能再次进行服务器端OAuth调用。应用程序将无法设置尝试自动延长到期时间的background / cron作业,因为“授权代码”是短暂的并且已经过期。“
为什么这里提到了授权代码,为什么不能仅仅通过cron作业为我的用户自动续订access_tokens,前提是有问题的access_tokens仍然有效?根据链接,以下是需要进行刷新access_token的调用:
https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
没有要求提供授权码。唯一需要的客户端特定信息是EXISTING_ACCESS_TOKEN参数。 APP_ID等其他参数只是特定于应用程序的。任何关于我需要做些什么才能使这项工作的建议将不胜感激。
我已经浏览了有关此内容的现有帖子,并且我发现了一个解释,即当令牌已经过期时,无法使用cron作业续订access_tokens。但是,我的access_tokens仍然有效,所以它不适用于我。
答案 0 :(得分:1)
为什么这里提到了授权代码,为什么不能仅仅通过cron作业自动为我的用户续订access_tokens,前提是有问题的access_tokens仍然有效?
因为否则对offline_access的弃用将毫无用处,因为每个应用程序仍然可以继续代表其用户永久行事。
我已经浏览了关于此
的现有帖子
很好,因为它不像你要求的那样已经多次没有被解释过了。不好,你不明白它。
我发现了一个解释,当令牌已经过期时,无法使用cron作业续订access_tokens。
正确。
但是,我的access_tokens仍然有效,所以它不适用于我。
您只能为长期存在的密钥交换短期访问令牌。你不能延长现有的长寿命。