我正在从Web应用程序调用应用程序脚本执行API。我得到ScriptApp.getOauthToken()
并将其存储在工作表中。当我打开Web应用程序时,我将获取存储的访问令牌并在其帮助下调用执行API。
但是问题是,一段时间后令牌已过期,并且说
需要授权
当我调用执行API时。
有什么方法可以使访问令牌保持活动状态或在需要时刷新它吗?
答案 0 :(得分:0)
I。您不能,也不应。至少不是本地的
没有用于获取和交换刷新令牌的本地Google Apps脚本服务方法(如果要刷新过期的OAuth 2.0令牌,则需要一种)来代替承载令牌。就是说,存储通过getOauthToken
方法获得的短期令牌没有实际原因-如果用户授权了您的应用程序,则您可以在每次需要请求时即时请求令牌。>
II。如果您仍然愿意,请使用图书馆
有一个officially endorsed library用于Google Apps脚本,可以为您管理OAuth 2.0流。使用它时,如果在颁发令牌时将脱机访问权限设置为true
,则可以获得刷新令牌。
III。如果您真的想自己动手做,可以随时制作自己的流程
通过使用自定义工具,可以通过构建自定义JWT令牌并将其与Google Identity Platform端点交换来执行完整的Oauth 2.0流(无论是否进行用户交互)。但这意味着您将必须管理一切:
请注意,令牌不能“保持有效”,这与OAuth协议背后的想法背道而驰-单个令牌的寿命越短,应用程序的安全性就越好。