构建 Google Workspace 插件

本页面简要介绍了如何设计、构建和发布 Google Workspace 插件。本概览介绍了以下步骤:

  1. 确定您希望向用户提供插件所在的 Google Workspace 应用。
  2. 设置您的插件项目,并选择所有者和协作者。
  3. 设计您的插件的外观和行为。
  4. 配置插件项目清单或部署资源。
  5. 编写代码以定义插件的外观和行为。
  6. 验证插件的 OAuth 范围。
  7. 在一个或多个 Google Workspace 应用中测试该插件。
  8. 发布该插件。

选择 Google Workspace 托管应用

您可以将 Google Workspace 插件配置为显示在以下 Google Workspace 托管应用中:

  • Gmail
  • Google 日历
  • Google 文档
  • Google 云端硬盘
  • Google 表格
  • Google 幻灯片

如需了解如何构建 Google Workspace 应用,请参阅扩展 Google Workspace 界面

设置插件项目并选择所有者和协作者

如果您使用 Apps 脚本构建插件,则需要同时创建 Apps 脚本项目和 Google Cloud 项目。如果您使用 Google Apps Script 以外的语言构建插件,则只需创建一个 Google Cloud 项目即可。

在开始开发插件之前,请选择一个用户账号来拥有项目,并确定其他哪些账号是协作者。项目所有者可以创建和管理项目文件及相关设置,而协作者可以帮助编码和测试。

Apps 脚本项目

您可以在共享云端硬盘中构建插件所需的 Apps 脚本项目文件,以便所有账号均拥有所有权。将您的插件脚本文件放在共享云端硬盘中可确保多个协作者可以访问脚本项目。

发布插件时,单个用户账号会充当发布商。发布账号必须拥有脚本项目的编辑权限,但不必是所有者。

如需创建 Apps 脚本项目,请参阅脚本项目

Google Cloud 项目

我们建议您向插件对应的 Cloud 项目添加协作者。这有助于确保您团队中的某位成员始终可以访问该插件在 Cloud 中的设置。

如需创建 Google Cloud 项目,请参阅创建 Google Cloud 项目

设计插件外观和行为

在开始构建插件之前,请先确定您希望插件呈现的外观和行为方式。考虑该插件应尝试为哪些使用场景提供解决方案。先从简单的设计开始,然后再进行进一步优化。

如需有关如何设计插件用户体验的指南,请参阅 Google Workspace 插件样式指南

配置插件项目清单

在 Apps 脚本项目中,项目清单是一种特殊的 JSON 文件。它指定了项目的各种详细信息,例如其库依赖项。对于 Google Workspace 插件,清单还会提供主机应用正确显示插件所需的基本信息。

如需详细了解如何在 Apps 脚本中配置插件清单,请参阅清单

向插件添加代码和功能时,请根据需要修改清单,以生成所需的插件外观和行为。

编写插件代码

您必须为该插件实现基于卡片的接口。使用 Apps 脚本的卡片服务;如果您使用其他代码语言编写,请返回格式正确的 JSON,以便界面将其呈现为卡片。

您还必须实现插件清单中指定的所有触发器函数。如果您的插件使用 OAuth 连接到非 Google 的第三方服务,您还必须为该服务配置 OAuth

构建卡片

您可以通过创建 Card 对象并用微件填充这些对象来定义插件界面。清单中指定的触发器函数必须返回一个 Card 对象或一个 Card 对象数组,这些对象代表插件接口的不同“页面”。您的插件还可以根据用户操作创建和显示新卡片。

在 Apps 脚本中,您可以使用 CardBuilder 类创建卡片。每张卡片都需要一个 CardHeader 和一个或多个 CardSections。您应为每个卡片部分填充构成插件界面的各个 widget。互动 widget 通常与操作相关联,以定义其互动行为。

通过卡片的 CardBuilder 将所有版块和 widget 添加到卡片后,您必须调用 CardBuilder.build() 来创建相应的 Card 对象。

您可以使用其他内置 Apps 脚本服务(例如 CalendarApp)检索要在您构建的插件卡片中显示的信息。您可以使用从非 Google 服务提取的数据。

如果您的插件需要访问需要 OAuth 的非 Google API,您必须配置并连接到该服务。如需了解详情,请参阅“连接到非 Google 服务”指南

施工订单

构建卡片时,必须从上往下构建。也就是说,您必须使用以下构建顺序:

  1. 构建微件。
  2. 将微件添加到卡片部分。
  3. 重复上述步骤,直到卡片部分包含所有 widget。
  4. 向卡片添加卡片部分。

这是必需的,因为当您向卡片或卡片部分添加微件时,实际上是在添加该微件的副本。您在添加 widget 对象后对其所做的任何更改都不会反映在最终卡片中。

通用操作

您可以使用通用操作来提供与上下文无关的功能。通用操作是指无论显示哪张卡片,插件界面中都提供的菜单项。所有已定义的通用操作始终会显示在该插件卡片菜单中。

如需了解详情,请参阅通用操作

验证插件 OAuth 范围

范围定义了允许插件代表用户执行的操作。最佳实践是,插件应仅具有其正常运行所必需的操作的范围,而不要超出这一范畴。

在插件项目中,请明确设置插件范围,确保插件尽可能少用权限范围。您可以在插件清单中定义插件使用的范围。

如需了解详情,请参阅镜重

测试插件

您可以先安装未发布的插件,然后再测试未发布的插件。安装并授权后,您就可以在自己的账号中使用该插件,并在其扩展的托管应用中测试其外观和行为。您应验证该插件在不同情境和用户操作下是否会按预期运行。

如需了解详情,请参阅测试 Google Workspace 插件

发布插件

发布您的插件后,其他用户(无论是公开用户还是您网域中的用户)都可以使用该插件。在开始发布流程之前,请务必查看发布概览。发布是一个复杂的过程,需要做好准备并花费时间才能完成。

Google Workspace 插件会发布到 Google Workspace Marketplace。公开发布的插件必须先完成应用审核,然后才能发布。

如需了解详情,请参阅发布 Google Workspace 插件