ออบเจ็กต์เหตุการณ์

ทริกเกอร์อย่างง่ายและ ทริกเกอร์ที่ติดตั้งได้ช่วยให้ Google Apps Script เรียกใช้ฟังก์ชันโดยอัตโนมัติได้หากเกิดเหตุการณ์หนึ่งๆ ขึ้น เมื่อทริกเกอร์เริ่มทำงาน Apps Script จะส่งออบเจ็กต์เหตุการณ์เป็นอาร์กิวเมนต์ไปยังฟังก์ชัน ซึ่งโดยปกติคือ 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());
}

หน้านี้อธิบายฟิลด์ในออบเจ็กต์เหตุการณ์สําหรับทริกเกอร์ประเภทต่างๆ

เหตุการณ์ที่ทริกเกอร์ที่ติดตั้งได้สร้างขึ้นจะมี triggerUid ที่ระบุ ทริกเกอร์ที่สร้างเหตุการณ์ ซึ่งจะช่วยสคริปต์ที่มีทริกเกอร์ที่ติดตั้งได้หลายรายการ

กิจกรรมใน Google ชีต

ทริกเกอร์ต่างๆ ที่เฉพาะเจาะจงสำหรับ Google ชีตจะช่วยให้สคริปต์ตอบสนองต่อการดำเนินการของผู้ใช้ในสเปรดชีตได้

เปิด

(เรียบง่าย และติดตั้งได้)
authMode

ค่าจาก enum ScriptApp.AuthMode

LIMITED
source

ออบเจ็กต์ Spreadsheet ซึ่งแสดงถึงไฟล์ชีตที่สคริปต์เชื่อมโยงอยู่

Spreadsheet
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้ (ทริกเกอร์ที่ติดตั้งได้เท่านั้น)

4034124084959907503
user

ออบเจ็กต์ User แสดงถึงผู้ใช้ที่ใช้งานอยู่ หากมี (ขึ้นอยู่กับชุดข้อจำกัดด้านความปลอดภัยที่ซับซ้อน)

amin@example.com

เปลี่ยน

(ติดตั้งได้)
authMode

ค่าจาก enum ScriptApp.AuthMode

FULL
changeType

ประเภทของการเปลี่ยนแปลง (EDIT, INSERT_ROW, INSERT_COLUMN, REMOVE_ROW, REMOVE_COLUMN, INSERT_GRID, REMOVE_GRID, FORMAT หรือ OTHER)

INSERT_ROW
source

ออบเจ็กต์ Spreadsheet ซึ่งแสดงถึงไฟล์ชีตที่สคริปต์ เชื่อมโยงอยู่

Spreadsheet
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้

4034124084959907503
user

ออบเจ็กต์ User แสดงถึงผู้ใช้ที่ใช้งานอยู่ หากมี (ขึ้นอยู่กับชุดข้อจำกัดด้านความปลอดภัยที่ซับซ้อน)

amin@example.com

แก้ไข

(เรียบง่าย และติดตั้งได้)
authMode

ค่าจาก enum ScriptApp.AuthMode

LIMITED
oldValue

ค่าของเซลล์ก่อนการแก้ไข (หากมี) ใช้ได้ก็ต่อเมื่อช่วงที่แก้ไข เป็นเซลล์เดียวเท่านั้น ไม่กำหนดหากเซลล์ไม่มีเนื้อหา ก่อนหน้า

1234
range

ออบเจ็กต์ Range ซึ่งแสดงถึงเซลล์หรือช่วงของเซลล์ที่แก้ไข

Range
source

ออบเจ็กต์ Spreadsheet ซึ่งแสดงถึงไฟล์ชีตที่สคริปต์เชื่อมโยงอยู่

Spreadsheet
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้ (ทริกเกอร์ที่ติดตั้งได้เท่านั้น)

4034124084959907503
user

ออบเจ็กต์ User แสดงถึงผู้ใช้ที่ใช้งานอยู่ หากมี (ขึ้นอยู่กับชุดข้อจำกัดด้านความปลอดภัยที่ซับซ้อน)

amin@example.com
value

ค่าของเซลล์ใหม่หลังการแก้ไข ใช้ได้ก็ต่อเมื่อช่วงที่แก้ไขเป็นเซลล์เดียวเท่านั้น

10

ส่งแบบฟอร์ม

(ติดตั้งได้)
authMode

ค่าจาก enum ScriptApp.AuthMode

FULL
namedValues

ออบเจ็กต์ที่มีชื่อและค่าคำถามจากการส่งแบบฟอร์ม

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

ออบเจ็กต์ Range ซึ่งแสดงถึงเซลล์หรือช่วงของเซลล์ที่แก้ไข

Range
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้

4034124084959907503
values

อาร์เรย์ที่มีค่าตามลำดับเดียวกับที่ปรากฏในสเปรดชีต

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

กิจกรรมใน Google เอกสาร

ทริกเกอร์ช่วยให้เอกสารตอบสนองได้เมื่อผู้ใช้เปิดเอกสาร

เปิด

(เรียบง่าย และติดตั้งได้)
authMode

ค่าจาก enum ScriptApp.AuthMode

LIMITED
source

ออบเจ็กต์ Document ซึ่งแสดงไฟล์เอกสารที่สคริปต์เชื่อมโยงอยู่

Document
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้ (ทริกเกอร์ที่ติดตั้งได้เท่านั้น)

4034124084959907503
user

ออบเจ็กต์ User แสดงถึงผู้ใช้ที่ใช้งานอยู่ หากมี (ขึ้นอยู่กับชุดข้อจำกัดด้านความปลอดภัยที่ซับซ้อน)

amin@example.com

เหตุการณ์ใน Google สไลด์

ทริกเกอร์ช่วยให้สไลด์ตอบสนองได้เมื่อผู้ใช้เปิดงานนำเสนอ

เปิด

(ง่ายๆ)
authMode

ค่าจาก enum ScriptApp.AuthMode

LIMITED
source

ออบเจ็กต์ Presentation ซึ่งแสดงไฟล์สไลด์ที่สคริปต์เชื่อมโยงอยู่

Presentation
user

ออบเจ็กต์ User แสดงถึงผู้ใช้ที่ใช้งานอยู่ หากมี (ขึ้นอยู่กับชุดข้อจำกัดด้านความปลอดภัยที่ซับซ้อน)

amin@example.com

กิจกรรมใน Google ฟอร์ม

ทริกเกอร์เฉพาะของฟอร์มช่วยให้สคริปต์ตอบสนองเมื่อผู้ใช้ แก้ไขแบบฟอร์มหรือส่งคำตอบ

เปิด

* (เรียบง่าย และติดตั้งได้)
authMode

ค่าจาก enum ScriptApp.AuthMode

LIMITED
source

ออบเจ็กต์ Form ซึ่งแสดงไฟล์แบบฟอร์มที่สคริปต์เชื่อมโยงอยู่

Form
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้ (ทริกเกอร์ที่ติดตั้งได้เท่านั้น)

4034124084959907503
user

ออบเจ็กต์ User แสดงถึงผู้ใช้ที่ใช้งานอยู่ หากมี (ขึ้นอยู่กับชุดข้อจำกัดด้านความปลอดภัยที่ซับซ้อน)

amin@example.com

* เหตุการณ์นี้จะไม่เกิดขึ้นเมื่อผู้ใช้เปิดแบบฟอร์มเพื่อตอบ แต่จะเกิดขึ้นเมื่อผู้แก้ไขเปิดแบบฟอร์มเพื่อแก้ไข

ส่งแบบฟอร์ม

(ติดตั้งได้)
authMode

ค่าจาก enum ScriptApp.AuthMode

FULL
response

ออบเจ็กต์ FormResponse แสดงคำตอบของผู้ใช้ในแบบฟอร์มโดยรวม

FormResponse
source

ออบเจ็กต์ Form ซึ่งแสดงไฟล์แบบฟอร์มที่สคริปต์เชื่อมโยงอยู่

Form
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้

4034124084959907503

กิจกรรมใน Google ปฏิทิน

ทริกเกอร์ของ Google ปฏิทินจะทำงานเมื่อมีการอัปเดตกิจกรรมในปฏิทินของผู้ใช้ (สร้าง แก้ไข หรือลบ)

ทริกเกอร์เหล่านี้ไม่ได้บอกว่าเหตุการณ์ใดมีการเปลี่ยนแปลงหรือเปลี่ยนแปลงอย่างไร แต่จะบ่งบอกว่าโค้ดของคุณต้องดำเนินการซิงค์แบบเพิ่ม เพื่อรับการเปลี่ยนแปลงล่าสุดในปฏิทิน ดูคำอธิบายแบบเต็ม ของขั้นตอนนี้ได้ที่ คู่มือการซิงค์ทรัพยากรสำหรับ Calendar API

หากต้องการซิงโครไนซ์กับปฏิทินใน Apps Script ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดใช้บริการขั้นสูงของปฏิทิน สำหรับโปรเจ็กต์สคริปต์ บริการปฏิทินในตัว ไม่เพียงพอสำหรับเวิร์กโฟลว์นี้
  2. เลือกปฏิทินที่จะซิงค์ สำหรับปฏิทินแต่ละรายการ ให้ดำเนินการซิงค์ครั้งแรกโดยใช้เมธอด Events.list() ของบริการขั้นสูงของปฏิทิน
  3. การซิงค์ครั้งแรกจะแสดง nextSyncToken สำหรับปฏิทินนั้น จัดเก็บโทเค็นนี้ไว้เพื่อใช้ในภายหลัง
  4. เมื่อทริกเกอร์ Apps Script EventUpdated เริ่มทํางานเพื่อระบุการเปลี่ยนแปลงกิจกรรมในปฏิทิน ให้ทําการซิงค์แบบเพิ่มสําหรับปฏิทินที่ได้รับผลกระทบโดยใช้ nextSyncToken ที่จัดเก็บไว้ ซึ่งโดยพื้นฐานแล้วก็คือคำขอ Events.list() อีกรายการหนึ่ง แต่การระบุ nextSyncToken จะจำกัดการตอบกลับให้แสดงเฉพาะกิจกรรมที่มีการเปลี่ยนแปลงนับตั้งแต่การซิงค์ครั้งล่าสุด
  5. ตรวจสอบการตอบกลับของการซิงค์เพื่อดูว่ามีการอัปเดตเหตุการณ์ใดบ้าง และให้โค้ดตอบกลับอย่างเหมาะสม เช่น บันทึกการเปลี่ยนแปลง อัปเดตสเปรดชีต ส่งการแจ้งเตือนทางอีเมล หรือดำเนินการอื่นๆ
  6. อัปเดต nextSyncToken ที่จัดเก็บไว้สำหรับปฏิทินนั้นด้วยรายการที่ได้รับจากคำขอซิงค์แบบเพิ่ม ซึ่งจะบังคับให้การดำเนินการซิงค์ครั้งถัดไป แสดงเฉพาะการเปลี่ยนแปลงล่าสุด

ในบางครั้ง เซิร์ฟเวอร์จะทำให้โทเค็นการซิงค์ไม่ถูกต้อง ซึ่งส่งผลให้เกิดข้อผิดพลาด 410 เมื่อเกิดกรณีนี้ โค้ดของคุณควรทำการ ซิงค์แบบเต็ม และแทนที่ข้อมูลและโทเค็นที่ซิงค์ทั้งหมดที่จัดเก็บไว้สำหรับปฏิทินนั้น

EventUpdated

(ติดตั้งได้)
authMode

ค่าจาก ScriptApp.AuthMode enum

FULL
calendarId

รหัสสตริงของปฏิทินที่มีการอัปเดตกิจกรรม

susan@example.com
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้

4034124084959907503

เหตุการณ์ส่วนเสริมของ Google Workspace

onInstall() ทริกเกอร์จะทำงานโดยอัตโนมัติเมื่อผู้ใช้ติดตั้งส่วนเสริม

ติดตั้ง

(ง่ายๆ)
authMode

ค่าจาก enum ScriptApp.AuthMode

FULL

เหตุการณ์ในแอป Google Chat

ดูข้อมูลเกี่ยวกับออบเจ็กต์เหตุการณ์ใน Google Chat ได้ที่หัวข้อ รับและตอบโต้การโต้ตอบกับแอป Google Chat

กิจกรรมที่อิงตามเวลา

ทริกเกอร์ที่ขึ้นอยู่กับเวลา (หรือที่เรียกว่าทริกเกอร์นาฬิกา) ช่วยให้สคริปต์ทำงานในเวลาที่เฉพาะเจาะจงหรือในช่วงเวลาที่ เกิดซ้ำได้

อิงตามเวลา (ติดตั้งได้)
authMode

ค่าจาก enum ScriptApp.AuthMode

FULL
day-of-month

ระหว่าง 1 ถึง 31

เนื่องจากชื่อพร็อพเพอร์ตี้นี้มีขีดกลาง คุณจึงต้องเข้าถึงผ่าน e['day-of-month'] แทนที่จะใช้รูปแบบจุด

31
day-of-week

ระหว่างวันที่ 1 (วันจันทร์) ถึง 7 (วันอาทิตย์)

เนื่องจากชื่อพร็อพเพอร์ตี้นี้มีขีดกลาง คุณจึงต้องเข้าถึงผ่าน e['day-of-week'] แทนที่จะใช้รูปแบบจุด

7
hour

ระหว่าง 0 ถึง 23

23
minute

ระหว่าง 0 ถึง 59

59
month

ระหว่าง 1 ถึง 12

12
second

ระหว่าง 0 ถึง 59

59
timezone

เขตเวลา

UTC
triggerUid

รหัสของทริกเกอร์ที่สร้างเหตุการณ์นี้

4034124084959907503
week-of-year

ระหว่าง 1 ถึง 52

เนื่องจากชื่อพร็อพเพอร์ตี้นี้มีขีดกลาง คุณจึงต้องเข้าถึงผ่าน e['week-of-year'] แทนที่จะใช้รูปแบบจุด

52
year

ปี

2015