简单触发器和
借助可安装的触发器,Apps 脚本
在发生特定事件时自动运行函数。当触发器触发时
Apps 脚本向函数传递事件对象作为参数,通常称为
e
。事件对象包含引发
触发器触发。例如,以下示例代码显示了一个简单的 onEdit(e)
针对 Google 表格脚本的触发器,该脚本使用事件对象来确定
单元格已修改。
function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
range.setNote('Last modified: ' + new Date());
}
本页详细介绍了事件对象中针对不同类型的 触发器。
Google 表格事件
借助各种 Google 表格专用触发器,脚本可以响应用户的 操作。
打开(简单 和可安装) |
|
---|---|
authMode |
来自 LIMITED |
source |
Spreadsheet |
triggerUid |
生成此事件的触发器的 ID(仅限可安装的触发器)。 4034124084959907503 |
user |
一个 amin@example.com |
更改(可安装) |
|
---|---|
authMode |
来自 FULL |
changeType |
更改类型( INSERT_ROW |
source |
Spreadsheet |
triggerUid |
生成此事件的触发器的 ID。 4034124084959907503 |
user |
一个 amin@example.com |
修改(简单 和可安装) |
|
---|---|
authMode |
来自 LIMITED |
oldValue |
修改前的单元格值(如果有)。仅在修改 范围是一个单元格。如果单元格没有前一个值,则未定义 内容。 1234 |
range |
一个 Range |
source |
Spreadsheet |
triggerUid |
生成此事件的触发器的 ID(仅限可安装的触发器)。 4034124084959907503 |
user |
一个 amin@example.com |
value |
修改后的新单元格值。仅当修改后的范围是 单个单元格。 10 |
表单提交(可安装) |
|
---|---|
<ph type="x-smartling-placeholder"> | |
authMode |
来自 FULL |
namedValues |
包含表单提交内容中的问题名称和值的对象。 { 'First Name': ['Jane'], 'Timestamp': ['6/7/2015 20:54:13'], 'Last Name': ['Doe'] } |
range |
一个 Range |
triggerUid |
生成此事件的触发器的 ID。 4034124084959907503 |
values |
包含值的数组,其顺序与电子表格中显示的顺序相同。 ['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill', '28', 'Susan', '25'] |
Google 文档事件
触发器可让 Google 文档在用户打开文档时进行响应。
打开(简单 和可安装) |
|
---|---|
authMode |
来自 LIMITED |
source |
一个 Document |
triggerUid |
生成此事件的触发器的 ID(仅限可安装的触发器)。 4034124084959907503 |
user |
一个 amin@example.com |
Google 幻灯片活动
触发器可让 Google 幻灯片在用户打开演示文稿时进行响应。
打开(简单) |
|
---|---|
authMode |
来自 LIMITED |
source |
一个 Presentation |
user |
一个 amin@example.com |
Google 表单事件
借助 Google 表单专用触发器,脚本可以在用户修改表单时进行响应 或提交回复
打开*(简单 和可安装) |
|
---|---|
authMode |
来自 LIMITED |
source |
一个 Form |
triggerUid |
生成此事件的触发器的 ID(仅限可安装的触发器)。 4034124084959907503 |
user |
一个 amin@example.com |
* 此事件在用户打开表单进行回复时不会发生,而是会在 当编辑器打开表单进行修改时。
表单提交(可安装) |
|
---|---|
<ph type="x-smartling-placeholder"> | |
authMode |
来自 FULL |
response |
一个 FormResponse |
source |
一个 Form |
triggerUid |
生成此事件的触发器的 ID。 4034124084959907503 |
Google 日历活动
日历触发器会在用户的日历活动更新(创建、 已修改或删除)。
这些触发器不会告诉您哪个事件发生了变化或发生了什么变化。 而是指示您的代码需要执行增量同步操作 选择最近对日历所做的更改。完整说明 请参阅 同步资源指南(适用于 日历 API。
要在 Apps 脚本中与日历同步,请执行以下步骤:
- 为以下账号启用高级日历服务: 脚本项目。内置的 日历服务不足以满足 此工作流。
- 确定应同步的日历。对于每个这样的日历 执行首次同步 使用日历高级服务的 Events.list() 方法。
- 初始同步结果会返回相应日历的
nextSyncToken
。 存储此令牌以供日后使用。 - 当 Apps 脚本
EventUpdated
触发器触发时指示日历 请执行增量同步 针对受影响的日历使用存储的nextSyncToken
。这是 另一个 Events.list() 请求,但提供nextSyncToken
将响应限制为 自上次同步以来更改的活动。 - 查看同步响应,了解哪些活动进行了更新 让代码做出适当响应例如,您可以记录更改 更新电子表格、发送电子邮件通知或执行其他操作。
- 请将您为该日历存储的
nextSyncToken
更新为返回的值 增量同步请求的影响这会强制使下一项同步操作 仅返回最新的更改
EventUpdated(可安装) |
|
---|---|
authMode |
来自
FULL |
calendarId |
发生事件更新的日历的字符串 ID。 susan@example.com |
triggerUid |
生成此事件的触发器的 ID。 4034124084959907503 |
Google Workspace 插件活动
onInstall()
触发器运行
在用户安装插件时自动触发。
安装(简单) |
|
---|---|
authMode |
来自 FULL |
Google Chat 应用事件
如需了解 Google Chat 中的事件对象,请参阅 在 Google Chat 应用中接收和回复互动信息。
时间驱动的事件
时间驱动型触发器 (也称为时钟触发器)让脚本在特定时间或特定时间 周期性间隔。
时间驱动(可安装) | |
---|---|
authMode |
来自 FULL |
day-of-month |
介于 由于此属性名称包含短划线,必须通过
31 |
day-of-week |
介于 由于此属性名称包含短划线,必须通过
7 |
hour |
介于 23 |
minute |
介于 59 |
month |
介于 12 |
second |
介于 59 |
timezone |
时区。 UTC |
triggerUid |
生成此事件的触发器的 ID。 4034124084959907503 |
week-of-year |
介于 由于此属性名称包含短划线,必须通过
52 |
year |
本年。 2015 |