用户必须授权访问用户数据或对其执行操作的脚本项目 。当用户运行第一个需要授权的脚本时, 界面会显示启动授权流程的提示。
在此流程中,界面会告知用户脚本需要哪些权限 。例如,脚本可能需要读取用户 电子邮件消息或在日历中创建活动。脚本项目 将这些各个权限定义为 OAuth 范围。
对于大多数脚本,Apps 脚本会自动检测哪些范围 应用场景您可以查看脚本使用的范围 。您还可以明确设置范围 添加到清单中。设置 某些应用(如 插件,因为已发布的应用应 始终使用尽可能窄的范围。
在授权流程中,Apps 脚本会以直观易懂的方式呈现
向用户说明所需范围。例如,如果您的脚本
需要拥有您电子表格的只读权限,则清单可能具有
https://www.googleapis.com/auth/spreadsheets.readonly
。在
授权流程中,具有此范围的脚本会要求用户允许
更改为“查看您的 Google 电子表格”。
某些范围包含其他范围。例如,在向范围授权后
https://www.googleapis.com/auth/spreadsheets
允许对
电子表格。
查看范围
您可以执行 以下:
- 打开脚本项目。
- 点击左侧的概览。 。
- 查看 Project OAuth Scopes 下的范围。
设置显式范围
Apps 脚本会自动确定脚本需要的范围 通过扫描其代码来找出需要这些方法的函数调用。对于大多数脚本来说, 足以为您节省时间,但对于已发布的插件, 应用、Google Chat 应用以及对 Google Chat API 的调用,您必须多加练习 范围的直接控制权。
Apps 脚本有时会自动分配项目非常宽松的范围。 这可能意味着您的脚本会要求用户提供超出其需求的内容,这是糟糕的 做法。对于已发布的脚本,您必须将宽泛范围替换为 可以满足脚本需求。
您可以通过修改
manifest 文件。清单字段
oauthScopes
是项目使用的所有范围的数组。要设置您的
项目范围,请执行以下操作:
- 打开脚本项目。
- 点击左侧的项目设置 。
- 选择显示“appsscript.json”“清单文件”复选框。
- 点击左侧的编辑器 。
- 点击左侧的
appsscript.json
文件。 - 找到标记为
oauthScopes
的顶级字段。如果不存在 就可以添加它了 oauthScopes
字段指定字符串数组。如需设置范围,请执行以下操作: 请将此数组的内容替换为您所需的范围 资源。 例如{ ... "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/userinfo.email" ], ... }
- 点击顶部的“保存”图标 。
OAuth 验证
某些 OAuth 范围敏感,因为它们允许访问 Google 用户数据。如果您的脚本项目使用的范围允许访问用户数据, 项目必须完成 OAuth 客户端验证 然后才能将其公开发布为 Web 应用,或者 插件。 如需了解详情,请参阅以下指南:
受限范围
除敏感范围外,某些范围还归类为 受限 并遵守有助于保护用户数据的其他规则。如果您希望 发布使用一个或多个 API 的 Web 应用或插件 受限范围,应用必须遵守所有指定的限制 然后才能发布
查看受限范围的完整列表 然后再尝试发布如果您的应用使用了任何此类功能,则必须遵守 替换为 在发布之前针对特定 API 范围的其他要求。