授权范围

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

用户必须授权访问其数据或代表其执行操作的脚本项目。当用户首次运行需要授权的脚本时,界面会显示启动授权流程的提示。

在此流程中,界面会告知用户脚本需要的权限。例如,脚本可能想要获得读取用户电子邮件或在日历中创建活动的权限。脚本项目将这些单独的权限定义为 OAuth 范围

对于大多数脚本,Apps 脚本会自动检测您需要哪些范围;您可以随时查看脚本使用的范围。您还可以使用网址字符串在清单明确设置范围。某些应用(如插件)有时会需要明确设置范围,因为已发布的应用应始终尽可能缩小范围。

在授权流程中,Apps 脚本会向用户显示简单范围的必要说明。例如,如果您的脚本需要电子表格的只读权限,清单可能的作用域为 https://www.googleapis.com/auth/spreadsheets.readonly。在授权流程中,具有此范围的脚本会要求用户允许此应用“查看您的 Google 电子表格”。

有些作用域包含其他作用域。例如,在授权时,https://www.googleapis.com/auth/spreadsheets 范围允许对电子表格进行读写访问。

查看范围

您可以通过执行以下操作来查看脚本项目当前所需的范围:

  1. 打开脚本项目。
  2. 点击左侧的概览
  3. 查看项目 OAuth 范围下的范围。

设置显式范围

Apps 脚本通过扫描脚本中的代码来查找需要它们的函数调用,从而自动确定脚本需要的范围。对于大多数脚本来说,这已经足够,还为您节省了时间;但对于已发布的插件和 Web 应用,您必须更直接地控制范围。

Apps 脚本有时会自动分配非常宽松的范围。这可能意味着您的脚本向用户请求了更多需求,这是一种不好的做法。对于已发布的脚本,您必须使用范围更广的集合(涵盖脚本的需求)来替换宽泛的范围。

您可以通过修改脚本项目的 manifest 文件来明确设置该范围。清单字段 oauthScopes 是项目使用的所有范围的数组。如需设置项目的范围,请执行以下操作:

  1. 打开脚本项目。
  2. 点击左侧的 Project Settings 图标
  3. 选中在编辑器中显示 appscript.json" 清单文件复选框。
  4. 点击左侧的编辑器图标
  5. 点击左侧的 appsscript.json 文件。
  6. 找到标记为 oauthScopes 的顶级字段。如果不存在,您可以自行添加。
  7. oauthScopes 字段用于指定字符串数组。要设置项目使用的范围,请将此数组的内容替换为您希望其使用的范围。 例如:
          {
            ...
            "oauthScopes": [
              "https://www.googleapis.com/auth/spreadsheets.readonly",
              "https://www.googleapis.com/auth/userinfo.email"
            ],
           ...
          }
    
  8. 点击顶部的“保存”图标

OAuth 验证

某些 OAuth 范围是敏感范围,因为它们允许访问 Google 用户数据。如果您的脚本项目使用了允许访问用户数据的范围,则该项目必须先通过 OAuth 客户端验证,然后才能作为 Web 应用或插件公开发布。如需了解详情,请参阅以下指南:

受限范围

除了敏感范围之外,某些范围还被归类为受限,并遵循有助于保护用户数据的其他规则。如果您打算发布使用一个或多个受限范围的 Web 应用或插件,应用必须遵守所有指定的限制,然后才能发布。

在尝试发布之前,请查看受限范围的完整列表。如果您的应用使用了其中任何一项,则在发布之前必须遵守针对特定 API 范围的附加要求