首页 > 解决方案 > 脚本保持身份验证多长时间?

问题描述

我有一个项目,我正在使用脚本对表单提交的数据进行一些计算和操作。脚本有时会因以下错误而失败:Authorization is required to perform that action. 我无法在支持文档中找到有关此错误的信息。

2个问题:

  1. 我的脚本会保持身份验证多长时间?
  2. 有没有办法自动重新验证,还是每次发生这种情况时我都必须手动重新验证?

标签: google-apps-script

解决方案


要回答您的问题:

1. 我的脚本保持认证状态多久?

根据与脚本关联的 GCP 项目的发布状态,身份验证将持续不同的时间段。

例如,如果发布状态设置为Testing,则身份验证设置为持续 7 天作为安全功能。

测试用户的授权将从同意之日起 7 天到期。如果您的 OAuth 客户端请求离线访问类型并收到刷新令牌,则该令牌也将过期。

此外,关于取消授权以及您收到错误背后的原因需要考虑的其他一些事项:

  • 用户已撤消您应用的访问权限。

  • 刷新令牌已六个月未使用。

  • 用户更改了密码,并且刷新令牌包含 Gmail 范围。

  • 用户帐户已超过授予(实时)刷新令牌的最大数量。

正如在 Public Issue Tracker 上的这个问题中所指出的,一个可能的解决方案是在 Apps Script 项目的清单中设置显式范围。根据您的用例,您将不得不调整以下显示的内容:

 {
    ...
    "oauthScopes": [
      "https://www.googleapis.com/auth/spreadsheets.readonly",
      "https://www.googleapis.com/auth/admin.directory.user.readonly"
    ],
   ...

2. 有没有办法自动重新验证,还是每次发生这种情况时我都必须手动重新验证?

不幸的是,您每次都必须手动重新授权应用程序。

参考


推荐阅读