Google Workspace 插件可以在用户查看或修改日历和日历活动时提供自定义界面。这样,您可以为用户提供其他相关信息、自动执行任务,并将第三方系统连接到 Google 日历。
构建 Google 日历的插件界面时,可以提供一个首页。您可以为多个主持人使用相同的首页,也可以为 Google 日历设计特定的首页。
您的插件还可以定义当用户打开日历活动时显示的界面。
访问插件界面
Google Workspace 插件可以定义首页界面、Google 日历活动界面、附件选择界面或三种方式,具体取决于其打开方式:
- 如果用户在日历视图中点击插件图标,该插件将执行对应的
calendar.homepageTrigger
函数(如果存在)。此函数构建首页卡片,并将其返回到 Google 日历进行显示。如果未定义calendar.homepageTrigger
函数,则会显示通用首页卡片。 - 如果用户打开某个日历活动,然后点击插件图标,或者该插件在用户打开活动时打开,则该插件会执行相应的
eventOpenTrigger
函数(如果存在)。此函数会构建插件的日历活动界面,并返回 Google 日历以供显示。 - 如果该插件定义了一个
eventAttachmentTrigger
函数,那么当用户在修改日历活动时点击添加附件时,该插件会显示为附件提供程序。选择插件后,eventAttachmentTrigger
函数会构建该插件的连接选择界面,并将其返回到 Google 日历以供显示。
构建插件日历界面
您可以按照以下步骤通过 Google Workspace 插件扩展 Google 日历:
- 确定是否要在插件中添加日历专用的首页。 此外,还要考虑是否要在用户修改日历活动时提供自定义界面。
- 将适当的
addOns.common
和addOns.calendar
字段添加到插件脚本项目清单中,包括任何范围。 - 如果您提供特定于日历的首页,请实现
calendar.homepageTrigger
函数来构建此接口。您还可以选择将common.homepageTrigger
接口用于多个 Google Workspace 主机。 - 如果您提供日历活动接口,则必须实现
calendar.eventOpenTrigger
函数来构建此接口。如需了解详情,请参阅扩展日历活动界面。 - 实现响应用户界面互动(例如按钮点击)所需的关联回调函数。
日历首页
Google 日历支持显示 Google Workspace 插件首页。
如需在 Google 日历中显示插件的通用首页,只需确保插件清单中包含 addOns.calendar
字段即可。
或者,将 calendar.homepageTrigger
添加到插件清单中,以提供日历专用首页。
在任何一种情况下,您都必须在插件的脚本项目中提供首页触发器函数的名称。系统会在需要时自动调用此函数来构建 Google 日历首页。您必须实现此函数,以构建并返回构成首页的单个 Card
或一组 Card
对象。系统会向首页触发器函数传递事件对象作为参数,其中包含一些常规信息,例如客户端的平台。您可以使用事件对象数据来定制首页的构造。
扩展日历活动界面
Google 日历依赖上下文触发器来确定当用户修改日历活动时显示的界面。当触发器触发时,它会执行插件清单中的 calendar.eventOpenTrigger
字段指定的上下文触发器函数。
您必须实现 calendar.eventOpenTrigger
字段中指定的函数。此函数接受事件对象作为参数,并且必须在用户打开事件时返回单个 Card
对象或一组 Card
对象,以便 Google 日历显示。
事件对象
在用户创建日历活动时,系统会创建一个事件对象并将其传递给 calendar.eventOpenTrigger
上下文触发函数。触发器函数可以使用此事件对象中的信息来确定如何构建插件卡片或控制插件行为。插件还会在插件首次打开以及用户点击或选择互动式微件时创建并传递给 homepageTrigger
函数。
事件对象中介绍了事件对象的完整结构。如果 Google 日历是插件的代理托管应用,则上下文触发器和 widget 互动事件对象将包含携带日历专用客户端信息的 Calendar event 对象字段。
更新日历活动
除了在用户打开要修改的日历活动时触发的上下文 calendar.eventOpenTrigger
之外,您还可以定义在用户更新并保存日历活动时触发的 calendar.eventUpdateTrigger
。此触发器仅在用户执行以下一项或多项修改时触发:
- 添加一位或多位参加者。
- 移除一位或多位参加者。
- 添加或切换到其他会议解决方案。
当此触发器触发时,它会执行由 calendar.eventUpdateTrigger
清单字段指定的触发器函数。系统会在日历活动修改保存之前执行该函数。
calendar.eventUpdateTrigger
通常用于执行以下一项或多项操作:
- 更新插件的日历活动界面,以响应用户对日历活动的更改。
- 与第三方系统(例如连接到 Google 日历的会议系统)同步日历活动数据。
如果您需要使用插件调整日历活动的数据(例如参加者列表),则必须将插件 calendar.currentEventAccess
清单字段设置为 WRITE
或 READ_WRITE
。此外,该插件还需要拥有 https://www.googleapis.com/auth/calendar.addons.current.event.write
范围。
添加会议解决方案
会议解决方案:代表用户可以附加到 Google 日历活动的第三方会议选项。第三方会议概览文档详细介绍了如何构建插件以添加新的会议解决方案。您无需为此类扩展程序构建界面;添加的解决方案会作为选项出现在 Google 日历活动界面的下拉菜单中。