ทริกเกอร์ช่วยให้ 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 ฟอร์มจะไม่เกิดขึ้นเมื่อผู้ใช้เปิด แบบฟอร์มเพื่อตอบ แต่จะเกิดขึ้นเมื่อผู้แก้ไขเปิดแบบฟอร์มเพื่อแก้ไข