脚本的身份验证保持多长时间?

时间:2021-06-02 23:55:04

标签: google-apps-script

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

2 个问题:

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

1 个答案:

答案 0 :(得分:2)

回答您的问题:

1.我的脚本通过身份验证的时间是多久?

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

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

<块引用>

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

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

  • 用户撤销了对您应用的访问权限。

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

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

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

正如公共问题跟踪器上的 issue 所指出的,一个可能的解决方案是在 Apps 脚本项目的清单中设置明确的范围。根据您的用例,您必须调整下面显示的内容:

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

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

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

参考