用户必须授权访问用户数据或代表用户执行操作的脚本项目。当用户首次运行需要授权的脚本时,界面会显示启动授权流程的提示。
在此流程中,界面会告知用户脚本想要获得权限来执行哪些操作。例如,脚本可能想要获得读取用户电子邮件或在其日历中创建活动的权限。脚本项目将这些各个权限定义为 OAuth 范围。
对于大多数脚本,Apps 脚本会自动检测您需要的范围;您可以随时查看脚本使用的范围。您还可以使用网址字符串在清单中明确设置范围。某些应用(例如插件)有时需要明确设置范围,因为已发布的应用应始终使用尽可能窄的范围。
在授权流程中,Apps 脚本会向用户显示所需范围的直观易懂的说明。例如,如果您的脚本需要对电子表格进行只读访问,则清单的作用域可能是 https://www.googleapis.com/auth/spreadsheets.readonly
。在授权流程中,具有此范围的脚本会要求用户允许此应用“查看您的 Google 电子表格”。
某些范围包含其他范围。例如,获得授权的 https://www.googleapis.com/auth/spreadsheets
范围将允许对电子表格进行读写访问。
查看范围
您可以执行以下操作,查看您的脚本项目目前所需的范围:
- 打开脚本项目。
- 点击左侧的概览 。
- 查看 Project OAuth Scopes 下的范围。
设置显式范围
Apps 脚本通过扫描脚本代码来找出需要范围的函数调用,自动确定该脚本需要的范围。对于大多数脚本而言,这样就足够并节省您的时间,但对于发布的插件、Web 应用、Google Chat 应用以及对 Google Chat API 的调用,您必须更直接地控制范围。
Apps 脚本有时会自动分配项目非常宽松的范围。这可能意味着您的脚本会要求用户提供超出其需求的内容,但这种做法并不好。对于已发布的脚本,您必须将范围较广的范围替换为能够涵盖脚本需求且数量较少的一组范围。
您可以通过修改脚本项目的清单文件来明确设置脚本项目使用的范围。清单字段 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 应用或插件公开发布。如需了解详情,请参阅以下指南:
受限范围
除了敏感范围之外,某些范围还归类为受限范围,并受到有助于保护用户数据的其他规则的约束。如果您打算发布使用一个或多个受限范围的 Web 应用或插件,则该应用必须遵守所有指定的限制才能发布。
在尝试发布之前,请查看受限范围的完整列表。如果您的应用使用以下任一功能,您在发布之前必须遵守针对特定 API 范围的其他要求。