ทริกเกอร์ช่วยให้ Apps Script เรียกใช้ฟังก์ชันโดยอัตโนมัติเมื่อเกิดเหตุการณ์บางอย่าง เช่น การเปิดเอกสาร ทริกเกอร์แบบง่ายคือชุดฟังก์ชันที่สงวนไว้ซึ่งฝังอยู่ใน Apps Script เช่น ฟังก์ชัน onOpen(e)
ซึ่งจะทำงานเมื่อผู้ใช้เปิดไฟล์ Google เอกสาร, ชีต, สไลด์ หรือฟอร์ม
ทริกเกอร์ที่ติดตั้งได้มีความสามารถมากกว่าทริกเกอร์แบบง่าย แต่ต้องเปิดใช้งานก่อนใช้งาน สําหรับทริกเกอร์ทั้ง 2 ประเภท Apps Script จะส่งออบเจ็กต์เหตุการณ์ที่มีข้อมูลเกี่ยวกับบริบทที่เหตุการณ์เกิดขึ้นไปยังฟังก์ชันที่ทริกเกอร์
เริ่มต้นใช้งาน
หากต้องการใช้ทริกเกอร์แบบง่าย ให้สร้างฟังก์ชันที่ใช้ชื่อฟังก์ชันที่สงวนไว้อย่างใดอย่างหนึ่งต่อไปนี้
onOpen(e)
จะทำงานเมื่อผู้ใช้เปิดสเปรดชีต เอกสาร งานนำเสนอ หรือแบบฟอร์มที่ผู้ใช้มีสิทธิ์แก้ไขonInstall(e)
จะทํางานเมื่อผู้ใช้ติดตั้งส่วนเสริมเครื่องมือแก้ไขจากภายใน Google เอกสาร, ชีต, สไลด์ หรือฟอร์มonEdit(e)
จะทํางานเมื่อผู้ใช้เปลี่ยนค่าในสเปรดชีตonSelectionChange(e)
จะทำงานเมื่อผู้ใช้เปลี่ยนการเลือกในสเปรดชีตdoGet(e)
จะทํางานเมื่อผู้ใช้เข้าชมเว็บแอปหรือโปรแกรมส่งคําขอ HTTPGET
ไปยังเว็บแอปdoPost(e)
จะทํางานเมื่อโปรแกรมส่งคําขอ HTTPPOST
ไปยังเว็บแอป
พารามิเตอร์ e
ในชื่อฟังก์ชันด้านบนคือออบเจ็กต์เหตุการณ์ที่ส่งไปยังฟังก์ชัน ออบเจ็กต์นี้มีข้อมูลเกี่ยวกับบริบทที่ทริกเกอร์ให้ทํางาน แต่คุณไม่จำเป็นต้องใช้ออบเจ็กต์นี้
ข้อจำกัด
เนื่องจากทริกเกอร์แบบง่ายจะทํางานโดยอัตโนมัติโดยไม่ต้องขอสิทธิ์จากผู้ใช้ จึงมีข้อจํากัดหลายประการ ดังนี้
- สคริปต์ต้องเชื่อมโยงกับไฟล์ Google ชีต สไลด์ เอกสาร หรือฟอร์ม หรือเป็นส่วนเสริมที่ขยายแอปพลิเคชันอย่างใดอย่างหนึ่งดังกล่าว
- ไฟล์จะไม่ทำงานหากเปิดไฟล์ในโหมดอ่านอย่างเดียว (ดูหรือแสดงความคิดเห็น)
- การดำเนินการสคริปต์และคำขอ API จะไม่ทริกเกอร์ให้ทริกเกอร์ทำงาน เช่น การเรียกใช้
Range.setValue()
เพื่อแก้ไขเซลล์จะไม่ทริกเกอร์onEdit
ของสเปรดชีตให้ทำงาน - ผู้ใช้ดังกล่าวจะเข้าถึงบริการที่ต้องใช้การให้สิทธิ์ไม่ได้ ตัวอย่างเช่น เงื่อนไขเริ่มต้นแบบง่ายไม่สามารถส่งอีเมลได้เนื่องจากบริการ Gmail ต้องมีการให้สิทธิ์ แต่เงื่อนไขเริ่มต้นแบบง่ายสามารถแปลวลีด้วยบริการภาษาแบบไม่ระบุตัวตน
- ผู้ใช้จะแก้ไขไฟล์ที่เชื่อมโยงได้ แต่จะเข้าถึงไฟล์อื่นๆ ไม่ได้เนื่องจากต้องได้รับสิทธิ์
- ผู้ใช้อาจระบุตัวตนของผู้ใช้ปัจจุบันได้หรือไม่ก็ได้ โดยขึ้นอยู่กับชุดข้อจำกัดด้านความปลอดภัยที่ซับซ้อน
- โดยต้องเล่นไม่เกิน 30 วินาที
- ในบางกรณี ส่วนเสริมเครื่องมือแก้ไขจะเรียกใช้ทริกเกอร์แบบง่าย
onOpen(e)
และonEdit(e)
ในโหมดที่ไม่มีการให้สิทธิ์ ซึ่งจะทำให้เกิดข้อจํากัดเพิ่มเติม ดูข้อมูลเพิ่มเติมได้ที่คู่มือเกี่ยวกับวงจรการให้สิทธิ์ของส่วนเสริม - ทริกเกอร์แบบง่ายจะขึ้นอยู่กับขีดจํากัดโควต้าของทริกเกอร์ Apps Script
ข้อจํากัดเหล่านี้ไม่มีผลกับ doGet(e)
หรือ doPost(e)
onOpen(e)
ทริกเกอร์ onOpen(e)
จะทำงานโดยอัตโนมัติเมื่อผู้ใช้เปิดสเปรดชีต เอกสาร งานนำเสนอ หรือแบบฟอร์มที่มีสิทธิ์แก้ไข (ทริกเกอร์จะไม่ทํางานเมื่อมีการตอบแบบฟอร์ม แต่จะทํางานเมื่อเปิดแบบฟอร์มเพื่อแก้ไขเท่านั้น) onOpen(e)
มักใช้เพื่อเพิ่มรายการเมนูที่กำหนดเองลงใน Google ชีต สไลด์ เอกสาร หรือฟอร์ม
onInstall(e)
ทริกเกอร์ onInstall(e)
จะทํางานโดยอัตโนมัติเมื่อผู้ใช้ติดตั้งส่วนเสริมสำหรับโปรแกรมแก้ไขจากภายใน Google เอกสาร, ชีต, สไลด์ หรือฟอร์ม ทริกเกอร์จะไม่ทำงานเมื่อผู้ใช้ติดตั้งส่วนเสริมจากเว็บไซต์ Google Workspace Marketplace โปรดทราบว่าonInstall(e)
มีข้อจำกัดบางอย่างในสิ่งที่ทำได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการให้สิทธิ์
การใช้งาน onInstall(e)
ที่พบบ่อยที่สุดคือการเรียกใช้ onOpen(e)
เพื่อเพิ่มเมนูที่กำหนดเอง เมื่อติดตั้งส่วนเสริมแล้ว ไฟล์จะเปิดอยู่อยู่แล้ว onOpen(e)
จึงจะไม่ทำงานเอง เว้นแต่จะมีการเปิดไฟล์อีกครั้ง
onEdit(e)
ทริกเกอร์ onEdit(e)
จะทํางานโดยอัตโนมัติเมื่อผู้ใช้เปลี่ยนค่าของเซลล์ใดก็ได้ในสเปรดชีต เงื่อนไขเริ่มต้น onEdit(e)
ส่วนใหญ่ใช้ข้อมูลในออบเจ็กต์เหตุการณ์เพื่อตอบสนองอย่างเหมาะสม
เช่น ฟังก์ชัน onEdit(e)
ด้านล่างจะตั้งค่าความคิดเห็นในเซลล์ที่บันทึกเวลาที่แก้ไขครั้งล่าสุด
onSelectionChange(e)
ทริกเกอร์ onSelectionChange(e)
จะทำงานโดยอัตโนมัติเมื่อผู้ใช้เปลี่ยนการเลือกในสเปรดชีต หากต้องการเปิดใช้งานทริกเกอร์นี้ คุณต้องรีเฟรชสเปรดชีตเมื่อเพิ่มทริกเกอร์แล้ว และทุกครั้งที่เปิดสเปรดชีต
หากการเลือกย้ายไปมาระหว่างหลายเซลล์ในช่วงเวลาสั้นๆ ระบบอาจข้ามเหตุการณ์การเปลี่ยนแปลงการเลือกบางอย่างเพื่อลดเวลาในการตอบสนอง ตัวอย่างเช่น หากมีการเปลี่ยนแปลงการเลือกหลายรายการภายใน 2 วินาทีต่อกัน จะมีเฉพาะการเปลี่ยนแปลงการเลือกรายการแรกและรายการสุดท้ายเท่านั้นที่จะเปิดใช้งานทริกเกอร์ onSelectionChange(e)
ในตัวอย่างนี้ หากเลือกเซลล์ว่าง ฟังก์ชัน onSelectionChange(e)
จะตั้งค่าพื้นหลังของเซลล์เป็นสีแดง
doGet(e)
และ doPost(e)
ทริกเกอร์ doGet(e)
จะทํางานโดยอัตโนมัติเมื่อผู้ใช้เข้าชมเว็บแอปหรือโปรแกรมส่งคําขอ HTTP GET
ไปยังเว็บแอป ส่วน doPost(e)
จะทํางานเมื่อโปรแกรมส่งคําขอ HTTP POST
ไปยังเว็บแอป คุณสามารถดูการสาธิตทริกเกอร์เหล่านี้เพิ่มเติมได้ในคู่มือเว็บแอป บริการ HTML และบริการเนื้อหา โปรดทราบว่า doGet(e)
และ
doPost(e)
จะไม่อยู่ภายใต้ข้อจำกัดที่ระบุไว้ข้างต้น
ประเภททริกเกอร์ที่ใช้ได้
หากข้อจํากัดของทริกเกอร์แบบง่ายทําให้ทริกเกอร์ไม่ตรงกับความต้องการของคุณ ทริกเกอร์ที่ติดตั้งได้อาจทํางานแทนได้ ตารางด้านล่างจะสรุปประเภททริกเกอร์ที่ใช้ได้กับเหตุการณ์แต่ละประเภท ตัวอย่างเช่น Google ชีต สไลด์ ฟอร์ม และเอกสารทั้งหมดรองรับทริกเกอร์เปิดแบบง่าย แต่มีเพียงชีต เอกสาร และฟอร์มเท่านั้นที่รองรับทริกเกอร์เปิดที่ติดตั้งได้
กิจกรรม | ทริกเกอร์แบบง่าย | ทริกเกอร์ที่ติดตั้งได้ |
---|---|---|
เปิด |
|
|
แก้ไข |
|
|
การเปลี่ยนแปลงการเลือก |
|
|
ติดตั้ง |
|
|
เปลี่ยน |
|
|
ส่งแบบฟอร์ม |
|
|
กำหนดเวลา (นาฬิกา) |
|
|
ดาวน์โหลด |
|
|
โพสต์ |
|
* เหตุการณ์เปิดสําหรับ Google ฟอร์มจะไม่เกิดขึ้นเมื่อผู้ใช้เปิดแบบฟอร์มเพื่อตอบ แต่จะเกิดขึ้นเมื่อผู้แก้ไขเปิดแบบฟอร์มเพื่อแก้ไข