google-apps-script - 脚本保持身份验证多长时间?
问题描述
我有一个项目,我正在使用脚本对表单提交的数据进行一些计算和操作。脚本有时会因以下错误而失败:Authorization is required to perform that action.
我无法在支持文档中找到有关此错误的信息。
2个问题:
- 我的脚本会保持身份验证多长时间?
- 有没有办法自动重新验证,还是每次发生这种情况时我都必须手动重新验证?
解决方案
要回答您的问题:
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. 有没有办法自动重新验证,还是每次发生这种情况时我都必须手动重新验证?
不幸的是,您每次都必须手动重新授权应用程序。
参考
推荐阅读
- python-3.x - 取 DataFrame 列中 n 个数字的平均值,然后像 Excel 一样向下“拖动”公式
- r - 使用 SPEI 的标准化降水指数
- python - 读取 0x000000000000000C (Maxl DLL) 时出现 OSError
- react-redux - 清理数组并插入新元素的最佳方法
- python - Setuptools 如何打包一些模块和文件
- c# - 如何获取 RichTextBox 的行数
- .net-core - EF - 有条件地允许保存属性值(具有支持字段)
- android - 只有一个网络浏览器的delphi应用程序无法启动
- node.js - 如何在实时 Web 服务器上部署/使用 lit-html、lit-element
- java - sts中的Stackoverflow异常