ทริกเกอร์ช่วยให้ Apps Script เรียกใช้ฟังก์ชันโดยอัตโนมัติเมื่อเกิดเหตุการณ์บางอย่าง เช่น เปิดเอกสาร ทริกเกอร์แบบง่ายคือชุดฟังก์ชันที่สงวนไว้ซึ่งสร้างไว้ใน Apps Script เช่น ฟังก์ชัน onOpen(e)
ซึ่งเรียกใช้เมื่อผู้ใช้เปิดไฟล์ Google เอกสาร ชีต สไลด์ หรือฟอร์ม
ทริกเกอร์ที่ติดตั้งได้
มีความสามารถมากกว่าทริกเกอร์ทั่วไป แต่จะต้องเปิดใช้งานก่อนใช้งาน Apps Script จะทริกเกอร์ออบเจ็กต์เหตุการณ์ที่มีข้อมูลเกี่ยวกับบริบทที่เกิดเหตุการณ์ขึ้นสําหรับทริกเกอร์ทั้ง 2 ประเภท
การเริ่มต้นใช้งาน
หากต้องการใช้ทริกเกอร์ง่ายๆ เพียงสร้างฟังก์ชันที่ใช้ชื่อฟังก์ชันที่สงวนไว้อย่างใดอย่างหนึ่งต่อไปนี้
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 แบบ HTTP ไปยังเว็บแอป ทริกเกอร์เหล่านี้จะแสดงในคู่มือเกี่ยวกับเว็บแอป บริการ HTML และบริการเนื้อหามากขึ้น โปรดทราบว่า doGet(e)
และ doPost(e)
ไม่อยู่ภายใต้ข้อจํากัดที่ระบุไว้ด้านบน
ประเภททริกเกอร์ที่ใช้ได้
หากข้อจํากัดในทริกเกอร์แบบง่ายทําให้ไม่ตรงตามความต้องการ ทริกเกอร์ที่ติดตั้งได้อาจใช้งานได้แทน ตารางด้านล่างจะสรุปประเภททริกเกอร์ที่ใช้ได้กับเหตุการณ์แต่ละประเภท เช่น Google ชีต, สไลด์, ฟอร์ม และ เอกสารรองรับทริกเกอร์แบบเปิดแบบง่าย แต่มีเฉพาะชีต เอกสาร และฟอร์มเท่านั้นที่รองรับทริกเกอร์แบบเปิดที่ติดตั้งได้
เหตุการณ์ | ทริกเกอร์แบบง่าย | ทริกเกอร์ที่ติดตั้งได้ |
---|---|---|
เปิด |
![]() ![]() ![]() ![]()
|
![]() ![]() ![]() |
แก้ไข |
![]()
|
![]() |
การเปลี่ยนแปลงการเลือก |
![]()
|
|
ติดตั้ง |
![]() ![]() ![]() ![]()
|
|
เปลี่ยน |
![]() |
|
การส่งแบบฟอร์ม |
![]() ![]() |
|
ตามเวลา (นาฬิกา) |
![]() ![]() ![]() ![]() ![]() ![]() |
|
ดาวน์โหลด |
![]() ![]()
|
|
โพสต์ |
![]() ![]()
|
* กิจกรรมเปิดสําหรับ Google ฟอร์มจะไม่ปรากฏขึ้นเมื่อผู้ใช้เปิดแบบฟอร์ม แต่จะเปิดเมื่อเครื่องมือแก้ไขเปิดเพื่อแก้ไข