ทริกเกอร์ช่วยให้ Google Apps Script เรียกใช้ฟังก์ชันโดยอัตโนมัติเมื่อเกิด
เหตุการณ์บางอย่าง เช่น การเปิดเอกสาร ทริกเกอร์อย่างง่ายคือชุด
ของฟังก์ชันที่สงวนไว้ซึ่งสร้างขึ้นใน Apps Script เช่น ฟังก์ชัน
onOpen(e) ซึ่งจะทํางานเมื่อผู้ใช้เปิดไฟล์ Google เอกสาร
ชีต สไลด์ หรือฟอร์ม
ทริกเกอร์ที่ติดตั้งได้มีความสามารถมากกว่าทริกเกอร์อย่างง่าย แต่ต้องเปิดใช้งานก่อนจึงจะใช้ได้ สำหรับทริกเกอร์ทั้ง 2 ประเภท Apps Script จะส่งออบเจ็กต์เหตุการณ์ที่มีข้อมูลเกี่ยวกับบริบทที่เกิดเหตุการณ์ไปยังฟังก์ชันที่ทริกเกอร์
ดูข้อมูลเกี่ยวกับวิธีใช้ทริกเกอร์ในโปรเจ็กต์ส่วนเสริมของ Google Workspace ได้ที่ทริกเกอร์สำหรับส่วนเสริมของ Google Workspace
เริ่มต้นใช้งาน
หากต้องการใช้ทริกเกอร์อย่างง่าย ให้สร้างฟังก์ชันที่ใช้ชื่อฟังก์ชันที่สงวนไว้ต่อไปนี้
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) ที่พบบ่อยที่สุดคือการเรียกใช้ onOpen(e) เพื่อเพิ่ม
เมนูที่กำหนดเอง หลังจากติดตั้งส่วนเสริมแล้ว ไฟล์จะเปิดอยู่แล้ว ดังนั้น onOpen(e) จะไม่ทำงานด้วยตัวเองจนกว่าจะเปิดไฟล์อีกครั้ง
โปรดทราบว่ามีข้อจำกัดบางอย่างเกี่ยวกับสิ่งที่ onInstall(e) ทำได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการให้สิทธิ์
onEdit(e)
ทริกเกอร์ onEdit(e) จะทำงานโดยอัตโนมัติเมื่อผู้ใช้เปลี่ยนค่าของเซลล์ในสเปรดชีต onEdit(e) ทริกเกอร์ส่วนใหญ่จะใช้ข้อมูลในออบเจ็กต์เหตุการณ์เพื่อตอบสนองอย่างเหมาะสม
เช่น onEdit(e) ฟังก์ชันด้านล่างจะตั้งค่าความคิดเห็นในเซลล์ที่
บันทึกเวลาที่แก้ไขครั้งล่าสุด
onEdit() ทริกเกอร์จะจัดคิวเหตุการณ์ทริกเกอร์ได้สูงสุด 2 รายการเท่านั้น
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 ฟอร์มจะไม่เกิดขึ้นเมื่อผู้ใช้เปิด แบบฟอร์มเพื่อตอบ แต่จะเกิดขึ้นเมื่อผู้แก้ไขเปิดแบบฟอร์มเพื่อแก้ไข