授权范围

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

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

对于大多数脚本,Apps Script 会自动检测您需要哪些作用域;您可以随时查看脚本使用的作用域。您还可以使用网址字符串在manifest明确设置范围。有时,对于插件等特定应用,需要明确设置镜重范围,因为已发布的应用应始终使用尽可能窄的镜重范围。

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

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

查看镜重

您可以执行以下操作,查看脚本项目当前需要的范围:

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

设置显式镜重

Apps Script 会扫描脚本代码,找出需要相应作用域的函数调用,从而自动确定脚本需要哪些作用域。对于大多数脚本,这已足够,而且可以节省时间,但对于已发布的插件、Web 应用、Google Chat 应用以及对 Google Chat API 的调用,您必须更直接地控制这些范围。

Apps 脚本有时会自动为项目分配非常宽松的镜重。这可能意味着您的脚本向用户索取的权限超出了其所需的权限,这是一种不良做法。对于已发布的脚本,您必须将广泛的范围替换为仅涵盖脚本所需内容的更有限的范围。

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

  1. 打开脚本项目。
  2. 点击左侧的项目设置
  3. 选中在编辑器中显示“appsscript.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 范围的其他要求