构建 Google 日历界面

Google Workspace 插件可以在用户查看或修改日历和日历活动时提供自定义界面。这样,您可以为用户提供其他相关信息,自动执行任务,并将第三方系统连接到 Google 日历。

构建 Google 日历的插件界面时,您可以提供首页。您可以为多个主机使用相同的首页,也可以为 Google 日历设计一个特定首页。

您的插件还可以定义当用户打开日历活动时显示的界面。

访问插件界面

根据插件的打开方式, Google Workspace 插件可以定义首页界面、日历活动界面、附件选择界面,或者三种全部:

  • 如果用户在日历视图中点击插件图标,该插件会执行相应的 calendar.homepageTrigger 函数(如果存在)。此函数构建首页卡片并将其返回到 Google 日历以供显示。如果未定义 calendar.homepageTrigger 函数,则会显示通用首页卡片。
  • 如果用户打开 Google 日历活动,然后点击插件图标,或者用户打开活动时打开了该插件,则该插件会执行相应的 eventOpenTrigger 函数(如果存在)。此函数会构建插件的日历活动界面,并返回 Google 日历进行展示。
  • 如果该插件定义 eventAttachmentTrigger 函数,则当用户在修改日历活动时点击添加附件时,该插件会显示为附件提供程序。选择插件后,eventAttachmentTrigger 函数会构建该插件的附件选择界面,并将其返回到 Google 日历以供显示。

构建插件日历界面

您可以按照以下步骤,使用Google Workspace 插件扩展 Google 日历:

  1. 确定您是否希望此插件拥有 Google 日历专用首页。 此外,还要确定是否要在用户修改日历活动时提供自定义界面。
  2. 将适当的 addOns.commonaddOns.calendar 字段添加到插件脚本项目清单中,包括所需的任何范围
  3. 如果您提供日历专用的首页,请实现 calendar.homepageTrigger 函数以构建此接口。您还可以选择将 common.homepageTrigger 接口用于多个主机。 Google Workspace
  4. 如果您要提供日历活动接口,则必须实现 calendar.eventOpenTrigger 函数来构建此接口。如需了解详情,请参阅扩展日历活动界面
  5. 实现响应用户界面互动(例如按钮点击)所需的关联回调函数。

日历首页

Google 日历支持显示 Google Workspace 插件首页。 如需在 Google 日历中显示您的插件的通用首页,只需确保该插件的清单中包含 addOns.calendar 字段即可。

或者,将 calendar.homepageTrigger 添加到插件清单,以提供 Google 日历专用首页。

无论是哪种情况,您都必须在插件的脚本项目中提供首页触发器函数的名称。在需要时,系统会自动调用此函数来构建日历首页。您必须实现此函数,以构建并返回组成首页的单个 Card 或一组 Card 对象。系统会向首页触发器函数传递事件对象作为参数,其中包含一些常规信息,例如客户端的平台。您可以使用事件对象数据来定制首页的构造。

扩展日历活动界面

Google 日历依赖于上下文触发器来确定当用户修改日历活动时显示的界面(如果有)。当触发器触发时,它会执行插件清单中的 calendar.eventOpenTrigger 字段指定的上下文触发器函数。

您必须实现 calendar.eventOpenTrigger 字段中指定的函数。此函数接受事件对象作为参数,并且必须返回单个 Card 对象或一组 Card 对象,以便在用户打开事件时显示日历。

事件对象

当用户打开 Google 日历活动时,系统会创建一个事件对象并将其传递给 calendar.eventOpenTrigger 上下文触发器函数。触发器函数可以使用此事件对象中的信息来确定如何构建插件卡片或控制插件行为。首次打开插件以及用户点击或选择互动微件时,系统也会创建事件对象并将其传递给 homepageTrigger 函数。

事件对象中介绍了事件对象的完整结构。如果 Google 日历是插件的有效托管应用,则上下文触发器和微件互动事件对象将包含携带特定于日历的客户端信息的日历活动对象字段。

正在更新日历活动

除了当用户打开日历活动进行编辑时触发的上下文 calendar.eventOpenTrigger 外,您还可以定义当用户更新并保存日历活动时触发的 calendar.eventUpdateTrigger。此触发器仅在用户执行以下一项或多项修改时触发:

  • 添加一位或多位参加者。
  • 移除一位或多位参加者。
  • 添加或切换到其他会议解决方案。

当此触发器触发时,它会执行由 calendar.eventUpdateTrigger 清单字段指定的触发器函数。该函数会在保存日历活动修改之前执行。

calendar.eventUpdateTrigger 通常用于执行以下一项或多项操作:

  • 更新插件的日历活动界面,以响应用户对日历活动所做的更改。
  • 将日历事件数据与第三方系统(例如连接到 Google 日历的会议系统)同步。

如果您需要使用插件调整日历活动的数据(例如参加者列表),则必须将插件 calendar.currentEventAccess 清单字段设置为 WRITEREAD_WRITE。这还需要该插件具有 https://www.googleapis.com/auth/calendar.addons.current.event.write 范围

添加会议解决方案

会议解决方案代表用户可以附加到 Google 日历活动的第三方会议选项。第三方会议概览文档详细介绍了如何构建插件以添加新的会议解决方案。无需为此类扩展程序构建界面;添加的解决方案只会作为选项显示在 Google 日历活动界面的下拉菜单中。