事件对象

简单触发器可安装触发器可让 Apps 脚本在发生特定事件时自动运行函数。当触发器触发时,Apps 脚本会将事件对象作为参数传递给函数,通常称为 e。该事件对象包含有关导致触发器触发的上下文的信息。例如,以下示例代码显示了针对 Google 表格脚本的简单 onEdit(e) 触发器,该触发器使用事件对象来确定修改了哪个单元格。

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

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
source

Spreadsheet 对象,表示脚本要绑定到的 Google 表格文件。

Spreadsheet
triggerUid

生成此事件的触发器的 ID(仅限可安装的触发器)。

4034124084959907503
user

一个 User 对象,表示活跃用户(如果有)(具体取决于一组复杂的安全限制)。

amin@example.com

更改

可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
changeType

更改类型(EDITINSERT_ROWINSERT_COLUMNREMOVE_ROWREMOVE_COLUMNINSERT_GRIDREMOVE_GRIDFORMATOTHER)。

INSERT_ROW
source

一个 Spreadsheet 对象,表示脚本要绑定到的 Google 表格文件。

Spreadsheet
triggerUid

生成此事件的触发器的 ID。

4034124084959907503
user

一个 User 对象,表示活跃用户(如果有)(具体取决于一组复杂的安全限制)。

amin@example.com

修改

简单可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
oldValue

修改前的单元格值(如果有)。仅当修改的范围是单个单元格时才可用。如果单元格中没有前一内容,则此单元格将处于未定义状态。

1234
range

一个 Range 对象,表示已修改的单元格或单元格范围。

Range
source

Spreadsheet 对象,表示脚本要绑定到的 Google 表格文件。

Spreadsheet
triggerUid

生成此事件的触发器的 ID(仅限可安装的触发器)。

4034124084959907503
user

一个 User 对象,表示活跃用户(如果有)(具体取决于一组复杂的安全限制)。

amin@example.com
value

修改后的新单元格值。仅当修改的范围是单个单元格时才可用。

10

表单提交

可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
namedValues

包含表单提交内容中的问题名称和值的对象。

{
  'First Name': ['Jane'],
  'Timestamp': ['6/7/2015 20:54:13'],
  'Last Name': ['Doe']
}
range

一个 Range 对象,表示已修改的单元格或单元格范围。

Range
triggerUid

生成此事件的触发器的 ID。

4034124084959907503
values

包含值的数组,其顺序与电子表格中显示的顺序相同。

['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill',
'28', 'Susan', '25']

Google 文档事件

触发器可让 Google 文档在用户打开文档时进行响应。

打开

简单可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
source

一个 Document 对象,表示脚本要绑定到的 Google 文档文件。

Document
triggerUid

生成此事件的触发器的 ID(仅限可安装的触发器)。

4034124084959907503
user

一个 User 对象,表示活跃用户(如果有)(具体取决于一组复杂的安全限制)。

amin@example.com

Google 幻灯片活动

触发器可让 Google 幻灯片在用户打开演示文稿时进行响应。

打开

(简单)
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
source

Presentation 对象,表示脚本要绑定到的 Google 幻灯片文件。

Presentation
user

一个 User 对象,表示活跃用户(如果有)(具体取决于一组复杂的安全限制)。

amin@example.com

Google 表单事件

借助 Google 表单专用触发器,脚本可以在用户修改表单或提交回复时进行响应。

打开

*(简单可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

LIMITED
source

Form 对象,表示脚本要绑定到的 Google 表单文件。

Form
triggerUid

生成此事件的触发器的 ID(仅限可安装的触发器)。

4034124084959907503
user

一个 User 对象,表示活跃用户(如果有)(具体取决于一组复杂的安全限制)。

amin@example.com

* 此事件在用户打开表单进行回复时不会发生,而是在编辑者打开表单进行修改时发生。

表单提交

可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
response

FormResponse 对象,表示用户对表单的整体回复。

FormResponse
source

Form 对象,表示脚本要绑定到的 Google 表单文件。

Form
triggerUid

生成此事件的触发器的 ID。

4034124084959907503

Google 日历活动

日历触发器会在用户的日历活动更新(创建、修改或删除)时触发。

这些触发器不会告诉您哪个事件发生了变化或发生了什么变化。 而是指示您的代码需要执行增量同步操作才能获取对日历的近期更改。有关此过程的完整说明,请参阅 Google 日历 API资源同步指南

要在 Apps 脚本中与日历同步,请执行以下步骤:

  1. 为脚本项目启用高级日历服务。内置的日历服务不足以运行此工作流。
  2. 确定应同步的日历。对于每个此类日历,请使用日历高级服务的 Events.list() 方法执行初始同步操作。
  3. 初始同步结果会返回相应日历的 nextSyncToken。存储此令牌以供日后使用。
  4. 在 Apps 脚本 EventUpdated 触发器触发并指示日历活动发生更改时,使用存储的 nextSyncToken 对受影响的日历执行增量同步。这本质上是另一个 Events.list() 请求,但提供 nextSyncToken 会将响应限制为仅包含自上次同步以来发生了更改的事件。
  5. 检查同步的响应,了解哪些事件发生了更新,并让您的代码做出适当响应。例如,您可以记录更改、更新电子表格、发送电子邮件通知或执行其他操作。
  6. 将您为该日历存储的 nextSyncToken 更新为增量同步请求返回的值。这会强制下一个同步操作仅返回最新的更改。

EventUpdated

可安装
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
calendarId

发生事件更新的日历的字符串 ID。

susan@example.com
triggerUid

生成此事件的触发器的 ID。

4034124084959907503

Google Workspace 插件活动

当用户安装插件时,onInstall() 触发器会自动运行。

安装

(简单)
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL

Google Chat 应用事件

如需了解 Google Chat 中的事件对象,请参阅接收和响应与 Google Chat 应用的互动

时间驱动的事件

时间驱动的触发器(也称为时钟触发器)可让脚本在特定时间或按周期性间隔执行。

时间驱动(可安装)
authMode

来自 ScriptApp.AuthMode 枚举的值。

FULL
day-of-month

介于 131 之间。

由于此属性名称包含短划线,必须通过 e['day-of-month'](而不是点表示法)进行访问。

31
day-of-week

介于 1(周一)到 7(周日)之间。

由于此属性名称包含短划线,必须通过 e['day-of-week'](而不是点表示法)进行访问。

7
hour

介于 023 之间。

23
minute

介于 059 之间。

59
month

介于 112 之间。

12
second

介于 059 之间。

59
timezone

时区。

UTC
triggerUid

生成此事件的触发器的 ID。

4034124084959907503
week-of-year

介于 152 之间。

由于此属性名称包含短划线,必须通过 e['week-of-year'](而不是点表示法)进行访问。

52
year

本年。

2015