如果您已构建并发布了用于扩展 Gmail 或 Google 日历的插件,则可以将其升级为 Google Workspace 插件。本页中的说明详细介绍了如何向现有的 Gmail 或日历插件添加 Google Workspace 功能,然后发布升级后的插件,以便用户发现和安装。
您可以将新功能转移到原始插件,以保留您的 Google Workspace Marketplace 商品详情、安装次数和用户。升级后,您还可以使用新的 Google Workspace 插件功能,例如首页。
第 1 步:复制您的插件所用的 Google Apps 脚本项目
升级后的插件使用与已发布插件相同的 Google Cloud 项目,但请务必创建并使用底层 Apps Script 项目的副本,以便在您测试升级版时现有用户不会受到影响。升级原始脚本项目的副本还意味着,您可以随时访问原始代码,并在必要时稍后重新部署该代码。
- 打开现有的 Gmail 插件或 Google 日历会议插件 Apps Script 项目。
- 点击左侧的概览 icon。
- 点击右侧的“制作副本”图标 。
- 在左侧,依次点击项目设置 > 更改项目。
- 点击 GCP 项目编号。
- 输入与现有已发布的插件 Apps 脚本项目关联的项目编号。
- 点击设置项目。
第 2 步:集成 Google Workspace 插件
您必须设计和实现要添加到插件中的所有 Google Workspace 插件功能。
- 规划要在插件首页卡片中显示的内容,以及这些卡片应显示在 Gmail、Google 日历、云端硬盘中,还是这三种托管服务的任意组合中。如果您想在多个托管平台上使用同一首页,请确定是使用同一首页,还是为每个托管平台使用自定义首页卡片。
- 在复制的插件 Apps 脚本项目中,使用 homepageTrigger函数构建首页卡片。请务必添加控制新首页界面所需的所有支持函数或逻辑。
- 考虑添加由用户操作触发的情境卡片,例如打开 Gmail 邮件会话或 Google 日历活动。 
- 更新您的插件中对事件对象的所有访问(在 widget 回调函数或情境触发器函数中),以使用更新后的事件对象结构。新结构仍包含 Gmail 和日历会议插件使用的相同事件对象字段,但这些原始字段已废弃,最终会被移除。 
第 3 步:更新插件的清单
与 Gmail 插件和日历会议插件使用的结构相比,Google Workspace 插件在清单结构中存储配置信息的方式已发生很大变化。升级插件时,您必须根据下表更新插件的 Apps Script 项目的清单字段。您必须将所有相关子媒体资源更新为新的 addOns 媒体资源。
请务必根据需要更新清单的 oauthScopes 字段,以反映更新后的插件所需的权限。
如需详细了解 Google Workspace 插件清单,请参阅清单。
Gmail 插件
| “Original manifest”字段 | 需要采取行动 | 
|---|---|
| gmail.composeTrigger | 移至 addOns.gmail.composeTrigger。 | 
| gmail.contextualTriggers[] | 将列表移至 addOns.gmail.contextualTriggers[]。 | 
| gmail.logoUrl | 移至 addOns.common.logoUrl。 | 
| gmail.name | 移至 addOns.common.name。 | 
| gmail.openLinkUrlPrefixes[] | 将列表移至 addOns.common.openLinkUrlPrefixes[]。 | 
| gmail.primaryColor | 移至 addOns.common.layoutProperties.primaryColor。 | 
| gmail.secondaryColor | 移至 addOns.common.layoutProperties.secondaryColor。 | 
| gmail.universalActions[] | 将列表移至 addOns.common.universalActions[]。 | 
| gmail.universalActions[].text | 将每个 gmail.universalActions[].text字段移至相应的addOns.common.universalActions[].label字段。 | 
| gmail.useLocalFromApp | 移至 addOns.common.useLocaleFromApp。 | 
Google 日历会议插件
| “Original manifest”字段 | 需要采取行动 | 
|---|---|
| calendar.createSettingsUrlFunction | 移至 addOns.calendar.createSettingsUrlFunction。 | 
| calendar.conferenceSolution[] | 移至 addOns.calendar.conferenceSolution[]。 | 
| calendar.logoUrl | 移至 addOns.common.logoUrl。 | 
| calendar.name | 移至 addOns.common.name。 | 
第 4 步:测试升级后的插件
如需在发布之前测试升级后的插件,请参阅测试 Google Workspace 插件。
第 5 步:申请对升级后的插件进行审核
所有 Google Workspace 插件(无论是升级后的插件还是从头构建的插件)都必须获得批准,然后才能在 Google Workspace Marketplace 中列出。
请按照以下步骤提交您的插件以供审核:
- 确保您的插件符合所有插件发布要求。 
- 使用要发布的代码版本,在新的 Apps 脚本项目中为 Google Workspace 插件创建版本化部署。请勿尝试使用主部署发布。 
- 如果您在升级插件时添加了新范围,则必须请求 OAuth 验证。例如,如果您的 Gmail 插件在 Google Workspace 插件版本中使用了新的云端硬盘或日历范围,您必须提交这些新范围以进行验证。验证通常需要几天时间才能完成,因此请尽早开始此流程。请确保您的插件已通过验证,然后再继续执行第 6 步。 
第 6 步:提供升级后的插件
- 打开 Google Workspace Marketplace SDK。 
- 点击左侧的配置。此面板包含一个表单,您可以在其中提供有关您的插件的信息。 
- 更新商品详情的简短说明、详细说明和屏幕截图,以反映 Google Workspace 插件的新功能。 
- 在扩展程序下,点击升级为 Google Workspace 插件按钮。在随即显示的文本框中,输入您在上一步中为 Google Workspace 插件创建的新部署 ID。如果您的部署 ID 有效,系统会显示受支持的主机列表。 
- 如果您向 Google Workspace 插件添加了新作用域,请务必将其添加到配置页面中的 OAuth 2.0 作用域部分。该部分中列出的镜重范围应与您的插件清单中列出的镜重范围完全一致。 
- 请检查您在表单中输入的信息是否正确无误。然后,点击保存更改。 
如果您在此次 Google Workspace 插件升级过程中有任何疑问或遇到问题,请与我们联系。
常见问题解答
以下是有关插件升级的常见问题解答:
我可以升级编辑器插件吗?
大多数编辑器插件都可以迁移到 Google Workspace 插件。不过,与 Gmail 和 Google 日历的插件相比,它们无法像这样轻松升级为 Google Workspace 插件。
如果您想将编辑器插件迁移到 Google Workspace 插件,则需要将插件的界面从 HTML 重写为基于卡片的界面,并将 JavaScript 处理更新为卡片服务。
您现有编辑器插件中的某些服务可能无法在卡片服务中使用。例如,如果您的编辑器插件包含文件选择器,则 Google Workspace 插件卡片服务中没有等效的选择器。
我可以构建单独的 Google Workspace 插件并保留现有插件吗?
您可以使用不同的品牌名称构建其他 Google Workspace 插件,但我们不允许使用与您的 Google Workspace 插件相同的品牌名称构建单独的 Gmail 或 Google 日历会议插件。如果您有任何疑问或想申请按例外情况处理,请与我们联系。
我的用户是否需要在插件升级后重新授权?
只要您的 Google Workspace 插件使用的是具有关联 OAuth 客户端 ID 的同一基础 Cloud Platform (GCP) 项目,您的用户就无需重新授予之前为原始插件授予的权限。不过,如果您在升级过程中添加了新镜,则用户在首次使用 Google Workspace 版插件时必须授权这些新镜。
我可以将 Chrome 扩展程序升级为 Google Workspace 插件并转移用户吗?
不可以。您无法转移 Chrome 扩展程序的用户数、安装次数和详情评价。您必须创建新的 Google Workspace 插件,并将 Chrome 扩展程序的用户定向到 Google Workspace Marketplace。
我可以将多个插件与我的 Google Workspace 插件捆绑在一起吗?
请参阅将应用集成列在一起。