2

我正在研究在我的所有用户即将到期之前从 cron 作业自动更新 Facebook access_tokens,作为其中的一部分,我一直在阅读以下有关离线访问的链接:https ://developers.facebook.com /roadmap/offline-access-removal/在链接中它显示以下内容:“注意:用户必须先访问您的应用程序,然后您才能获得有效的“授权码”才能进行服务器端 OAuth 调用再次。应用程序将无法设置尝试自动延长到期时间的后台/cron 作业,因为“授权码”是短暂的并且已经到期。”

为什么这里提到了授权代码,为什么如果相关的 access_tokens 仍然有效,为什么不能从 cron 作业中为我的用户自动更新 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 仍然有效,因此不适用于我。

4

1 回答 1

1

为什么这里提到了授权代码,为什么如果相关的 access_tokens 仍然有效,为什么不能从 cron 作业中为我的用户自动更新 access_tokens?

因为否则offline_access 的弃用将毫无用处,因为每个应用程序仍然可以永远代表其用户行事。

我已经浏览了有关此的现有帖子

很好,因为这不像你问的同一件事之前没有被解释过多次。不好,虽然你不明白。

我找到了一个解释,说明当令牌已经过期时,无法使用 cron 作业更新 access_tokens。

正确的。

但是,我的 access_tokens 仍然有效,因此不适用于我。

您只能将短期访问令牌交换为长期访问令牌。你不能延长一个已经存在的长寿的。

于 2012-12-21T07:27:53.473 回答