Apps 脚本触发器会在每次发生指定事件时执行指定的脚本函数(触发器函数)。只有特定事件才能触发触发器,并且每款 Google Workspace 应用支持的事件各不相同。
触发器触发时,系统会创建一个事件对象。此 JSON 结构包含有关所发生事件的详细信息。事件对象结构中的信息的组织方式因触发器类型而异。
创建事件对象后,Apps Script 会将其作为参数传递给触发器函数。触发器函数是一种回调函数,您必须自行实现该函数,以便执行适当的操作来响应事件。例如,在扩展 Gmail 的 Google Workspace 插件中,您可以定义一个触发器,以便在用户打开消息会话时创建新的卡片界面。在本例中,您将实现上下文回调函数,以使用事件对象中传递的数据创建构成新界面的卡片。
本页面提供了有关在 Google Workspace 插件项目中使用触发器的指南。
清单触发器
与编辑器插件不同,Google Workspace 插件目前无法使用 Apps Script 简单触发器。而是使用专为 Google Workspace 插件设计的触发器:清单触发器。
清单触发器完全在 Google Workspace 插件的清单中定义。清单触发器的示例包括:
- 用于构建和显示插件首页的首页触发器。
- “日历活动打开”触发器:在日历活动打开时显示新卡片或执行其他操作。
- “日历 eventUpdate”触发器:在用户修改并保存日历活动时显示新卡片或执行其他操作。
- 云端硬盘 onItemsSelected 触发器:当用户在云端硬盘中选择一个或多个文件或文件夹时,显示新卡片或执行其他操作。
- Gmail 撰写触发器:在用户在 Gmail 撰写窗口中打开插件时显示插件卡片。
- Gmail 情境触发器:在用户打开 Gmail 邮件时显示新卡片或执行其他操作。
- Editor onFileScopeGranted 触发器:当用户在当前编辑器文档中授予
drive.file
OAuth 范围的授权时,系统会显示新卡片。
在上述列表中,只有首页触发器是非情境触发器;其余均为情境触发器。如需详细了解清单触发器定义,请参阅清单。
除了清单触发器之外,Google Workspace 插件还可以使用 Apps Script 可安装的触发器。
限制
清单触发器的使用受到一定限制。
- 这些触发器仅用于 Google Workspace 插件项目;在任何其他应用中都没有用途。
- 由于这些触发器是在插件清单中定义的,而不是在其代码中定义的,因此您无法使用 Apps 脚本
Script
服务创建或修改这些触发器。 - Gmail 情境触发器目前只能包含
unconditional
条件。这意味着,无论内容如何,系统都会针对每封电子邮件触发内容相关触发器。 - 每个插件只能针对每位用户的每份文档提供每种类型的一个触发器。