每个 Apps 脚本项目都使用 Google Cloud 来管理授权、高级服务和其他详细信息。为了配置和管理这些设置,每个 Apps Script 项目都有一个关联的 Google Cloud 项目。您的脚本项目可以使用 Apps 脚本自动创建的默认项目,也可以使用您自己创建的标准项目。通常,默认项目适用于日常或简单的脚本,但对于任何复杂、商业质量或您打算发布的应用,您都应使用标准项目。
您可以随时从默认项目切换到标准项目,但无法切换回使用默认项目。最好在开发初期选择脚本要使用的 Cloud 项目。稍后切换可能会导致复杂问题,例如要求用户重新授权。
默认 Cloud 项目
创建 Apps Script 项目时,Apps Script 会创建一个在后台运行的默认 Cloud 项目。
- 对于大多数脚本,您永远不需要查看或调整此默认项目。Apps Script 会处理与 Google Cloud 的必要交互。例如,如果您在 Apps 脚本编辑器中激活了某项高级服务,则当您保存脚本项目时,Apps 脚本会在默认 Cloud 项目中激活高级服务。
- 对于某些脚本,您需要与 Google Cloud 控制台进行交互。在这些情况下,您的脚本必须改用标准 Cloud 项目。例如,如需在 Google Cloud 控制台中查看 Google Cloud 日志,您的脚本必须使用标准项目。
默认情况下,Cloud 项目具有一个包含一个条目的 Identity and Access Management (IAM) 政策,该条目是用作默认项目所有者的 Google 服务账号。Google 服务账号为 appsdev-apps-dev-script-auth@system.gserviceaccount.com
。
查看或更新默认 Cloud 项目
大多数用户无法在 Google Cloud 控制台中直接找到、查看或修改默认项目。如果您是管理员,请参阅查看默认 Google Cloud 项目。
如果您是在 2019 年 4 月 8 日之前创建的脚本项目,则可以使用您可以在 Google Cloud 控制台中访问的默认项目。如需访问默认项目,请前往脚本项目的设置,然后点击项目编号。
删除默认的 Cloud 项目
如果您是管理员,则可以像删除标准 Cloud 项目一样删除默认 Cloud 项目。请参阅删除 Apps 脚本 Cloud 项目。
如果您不是管理员,则无法删除默认项目。不过,在以下情况下,Apps 脚本会删除默认项目:
- 如果您删除脚本项目或将其切换为使用标准项目,Apps Script 会删除附加到脚本的默认项目,以及其中包含的所有设置或信息。
- 如果脚本未运行 180 天或更长时间,则 Apps 脚本会删除与其关联的默认项目。如果脚本在 Apps 脚本删除其默认项目后运行,Apps 脚本会为该脚本创建一个项目。
标准 Cloud 项目
默认 Cloud 项目是大多数脚本项目的最佳选择,除非您需要手动配置项目。在这些情况下,您必须将脚本项目切换为使用标准项目。
以下各部分介绍了 Apps Script 何时需要标准项目、此类项目的属性,以及通过此类项目执行的常见任务。您只能使用标准项目执行以下任务。
Apps 脚本何时需要标准 Cloud 项目
在以下情况下,您必须使用标准项目:
- 如需在 Google Workspace Marketplace 中将脚本项目发布为插件,请执行以下操作:
- 验证脚本项目的 OAuth 客户端。
- 当您的应用需要使用 Apps Script API 的
scripts.run
方法在脚本项目中执行函数时。 - 如需在 Google Cloud 控制台中查看脚本项目的 Google Cloud 日志,请执行以下操作:Google Cloud 控制台提供了更多用于过滤和查看日志的工具,比 Apps Script 信息中心提供的简化视图更实用。
- 使用 Error Reporting 查看脚本项目的错误报告。
- 创建一个文件打开对话框。
- 您需要手动控制项目的 Google Cloud 设置。
标准 Cloud 项目属性
标准项目具有以下属性:
- 您可以直接通过 Google Cloud 控制台访问项目的所有 Google Cloud 设置。这样,您就可以激活 API、调整授权凭据并配置其他详细信息。
- 删除脚本项目或将其切换为使用其他标准项目后,原始标准项目会保留并可重复使用。
- 在脚本项目中激活高级服务时,您必须在标准项目中手动激活相应的 API。
- 多个脚本项目和其他应用可以共享同一个标准项目。如果您打算将脚本项目作为插件发布到 Google Workspace Marketplace,则该项目必须有自己的标准项目。已发布的应用无法与其他应用共享 Cloud 项目。
- 如果您想使用 Apps Script API 的
scripts.run
方法从其他应用执行脚本项目中的函数,则脚本项目和调用应用必须共用同一标准项目。 - 当 Apps 脚本要求用户授权使用标准项目的脚本时,系统会使用 Cloud 项目名称(而非脚本项目名称)来识别脚本。因此,请务必设置适当的 Cloud 项目名称。
访问标准 Cloud 项目
如需访问与您的脚本项目关联的标准项目,请执行以下操作:
- 打开 Apps 脚本项目。
- 点击左侧的项目设置 。
- 在 Google Cloud Platform (GCP) Project(Google Cloud Platform [GCP] 项目)下,点击项目编号。
您也可以直接在 Google Cloud 控制台的管理资源页面上找到标准项目。
在标准 Cloud 项目中激活 API
Apps 脚本应用经常需要访问其他 Google API。为此,您必须在相应的 Cloud 项目中激活该 API。执行以下操作来激活 API:
- 打开 Cloud 项目。
- 依次点击“菜单”图标 > API 和服务。
- 点击启用 API 和服务。
- 在搜索框中输入要启用的 API,然后按 Enter。
- 点击搜索结果中的 API,然后点击启用,为此 Cloud 项目激活该 API。
系统可能会提示您接受 Google API 或 Google Cloud 的服务条款。在接受《服务条款》之前,请仔细阅读。
根据应用的不同,您可能还需要配置 API,具体方法是在 API 和服务信息中心内选择相应 API。
确定标准 Cloud 项目的 ID 和编号
所有 Cloud 项目都有项目名称、项目 ID 和项目编号。有时,您必须拥有这些标识符才能配置服务或完成其他任务。
如需确定标准项目的 ID 和编号,请执行以下操作:
- 打开 Cloud 项目。
- 在右上角,依次点击“更多”图标 > 项目设置。
- 在随即显示的设置面板中,查看项目名称、项目 ID 和项目编号。项目编号仅包含数字,而项目 ID 则为字母数字。您可以修改项目名称,该名称会在授权提示期间向用户显示。
在 Google Cloud 控制台中查看 Google Cloud 日志和错误报告
如果您为脚本项目使用 Google Cloud 日志记录或错误报告,则可以执行以下操作,在 Google Cloud 控制台中查看这些日志和报告:
- 打开 Cloud 项目。
- 点击“菜单”图标 。
- 向下滚动到操作部分,然后依次点击 Logging > Logs explorer。
- 如需查看错误报告,请向下滚动到操作部分,然后点击 Error Reporting。如果系统提示您设置错误报告,则表示您的脚本项目尚未记录任何异常。
填写 OAuth 同意屏幕
使用需要 OAuth 的服务时,Google 会提示用户授权这些服务。通过 OAuth 同意屏幕设置,您可以设置 Google 向用户显示的某些信息,例如应用名称和服务条款网址。
默认的 Cloud 项目会根据 Apps 脚本项目详情自动创建同意屏幕;您无法调整这些设置。标准 Cloud 项目允许您自定义此信息。您可以通过以下方式配置脚本的意见征求页面:
- 打开 Cloud 项目。
- 依次点击“菜单”图标 > API 和服务 > 凭据。
- 点击配置同意屏幕。
- 填写意见征求界面工作流的各个部分。
- 如需记录工作流程每个阶段所做的更改,请点击保存并继续。
创建 OAuth 凭据
Apps Script 通常会为脚本使用的服务设置 OAuth。对于某些应用,您必须创建其他 OAuth 凭据(客户端 ID 和客户端密钥)。您只能对标准项目执行此操作。
如需为脚本项目创建客户端 ID 和客户端密钥,请执行以下操作:
- 打开 Cloud 项目。
- 依次点击“菜单”图标 > API 和服务 > 凭据。
- 依次点击创建凭据 > OAuth 客户端 ID。
- 在应用类型下,选择您的应用类型,并根据需要填写随即显示的表单。完成后,点击创建。
- 在出现的对话框中,点击下载 JSON。您可以使用此文件配置 OAuth。
向标准 Cloud 项目添加其他所有者
您可以向标准项目添加其他所有者或其他角色。如果您要协作完成一个项目,这有助于确保团队中的某位成员始终有权访问脚本项目的 Google Cloud 设置。
您可以通过以下步骤向标准项目添加其他所有者或其他角色。您必须拥有项目的修改权限,才能进行以下任何更改:
- 确定协作者的身份。我们建议您创建或使用现有的 Google 群组。您还可以在协作者列表中指定网域,以包含该网域中的所有用户。
- 打开脚本的 Cloud 项目。
- 点击“菜单”图标 > IAM 和管理 > IAM。
- 点击顶部的添加。
- 按照屏幕上的说明向 Cloud 项目添加一个或多个新成员及其角色。您可以将个人电子邮件地址、Google 群组或网域添加为新成员。
- 点击保存。
将多个脚本归入一个 Cloud 项目
您可以让多个 Apps Script 项目共用同一个标准 Cloud 项目。为此,请创建一个标准项目,然后切换每个脚本项目,以使用该项目。您无法对默认项目执行此操作。
使用其他标准 Cloud 项目
您可以切换脚本项目,使其使用其他标准 Cloud 项目。如果您的脚本需要手动配置 Cloud 项目,您必须从默认项目切换到标准项目。如需详细了解何时需要使用标准项目,请参阅标准 Cloud 项目。
切换到其他标准 Cloud 项目的影响
如果您将脚本从默认项目切换到其他标准项目,则会产生以下影响:
- 如果您为脚本启用了高级服务,则必须在新 Cloud 项目中启用相应的 API。您将丢失与上一个 Cloud 项目中的高级服务关联的任何数据。如需了解如何在 Cloud 项目中启用 API,请参阅启用 Google Workspace API。
- 如果您的脚本使用内置的 Google 云端硬盘服务,您必须在标准 Cloud 项目中启用云端硬盘 API。
在标准 Cloud 项目中,开启 Drive API:
- 之前已向脚本授权的所有用户都必须重新授权。在大多数情况下,之前已为与新项目关联的应用授权的所有用户也必须重新授权。
- 如果您的脚本与 Google Workspace Marketplace 中的应用详情相关联,则您的应用详情、用户和评价不会转移到新项目中。您必须在新项目中创建应用详情,并且用户必须重新安装您的应用。如需了解如何创建新的应用详情,请参阅发布应用。
- 您无法将脚本切换回默认项目。当您将脚本设置为使用标准项目后,Apps 脚本会删除默认项目。
切换到其他标准 Cloud 项目
如需将脚本的现有 Cloud 项目切换到另一个 Cloud 项目,请按以下步骤操作:
- 如果您没有合适的 Cloud 项目,请按照创建项目中的说明创建一个。设置一个简单易记的项目名称,以便您在 Google Cloud 控制台的管理资源页面上找到该项目。Apps 脚本在要求用户授权脚本时使用此名称。
- 如果您想使用现有项目,请打开 Google Cloud 控制台 管理资源页面,然后找到要使用的现有项目。您必须拥有项目的“Project Browser”和“OAuth Config Editor”角色,或具有同等权限的角色。您无法使用由 Apps 脚本自动创建的项目。
- 确定您的 Cloud 项目的项目编号。
- 打开您要替换其 Cloud 项目的脚本。
- 点击左侧的项目设置图标 。
- 在 Google Cloud Platform (GCP) Project(Google Cloud Platform [GCP] 项目)下,点击 Change project(更改项目)。
- 输入新的项目编号,然后点击设置项目。
Cloud 项目和共享云端硬盘
共享云端硬盘(以前称为“团队云端硬盘”)提供了共享空间,供一组云端硬盘用户协同处理 Apps Script 项目和云端硬盘文档。在与团队一起开发脚本、插件和 Web 应用时,共享云端硬盘非常有用,但它们会对您可以对旧版默认 Cloud 项目执行的操作施加一些限制。
以下限制列表介绍了 Cloud 项目如何与共享云端硬盘互动:
- 如果脚本项目使用标准项目,则当脚本项目位于共享云端硬盘中时,不会受到任何其他限制。
- 如果脚本项目使用的是 2019 年 4 月 8 日当天或之后创建的默认项目,则当脚本项目位于共享云端硬盘中时,不会受到任何其他限制。
- 如果您的脚本项目使用的是 2019 年 4 月 8 日之前创建的默认项目,那么当脚本项目位于共享云端硬盘中时,将受到以下限制:
- 您无法使用 Apps Script 界面或 Google Cloud 控制台访问默认项目。此限制会阻止您执行需要直接访问项目的操作。
- 您无法启用高级服务。如需启用高级服务,请改用标准项目。
- 当您将现有 Apps 脚本项目移动到共享云端硬盘时,Google 会限制对默认 Cloud 项目的访问权限。如果您在迁移之前拥有对默认项目的访问权限,则仍然可以访问该项目。例如,如果您在“我的云端硬盘”文件夹中创建了脚本,然后将其移至共享云端硬盘,您仍然可以访问该脚本的 Cloud 项目。但共享云端硬盘中的协作者可能无法执行此操作。
- 脚本会保留其在移至共享云端硬盘之前的 Cloud 项目名称。即使您更改共享云端硬盘中的项目名称,授权脚本的用户在授权对话框中仍会看到旧名称。
为避免旧版脚本受到上述限制,请切换到标准项目。
获取 Apps 脚本 Cloud 项目列表
如果您拥有组织的 Apps Script 项目文件夹的 resourcemanager.projects.list
权限,则可以查看该文件夹中的所有标准和默认 Apps Script Cloud 项目。
- 打开 Google Cloud 控制台管理资源页面。
- 复制 Apps 脚本文件夹旁边的 ID。
- 依次点击过滤 > 父级 ID,然后粘贴 Apps 脚本文件夹 ID。
删除 Apps Script Cloud 项目
如需删除 Apps 脚本 Cloud 项目,请按照获取 Apps 脚本 Cloud 项目列表下的步骤操作,选择要删除的项目,然后点击删除。
如需使用 gcloud
删除 Apps 脚本项目,请使用以下命令。
gcloud projects list --filter='parent.id=APPS_SCRIPT_FOLDER_ID'
gcloud projects delete PROJECT_ID
如需详细了解如何删除 Cloud 项目,请参阅关停(删除)项目。