เช่นเดียวกับทริกเกอร์แบบง่าย ทริกเกอร์ที่ติดตั้งได้จะทําให้ Apps Script เรียกใช้ฟังก์ชันโดยอัตโนมัติเมื่อเกิดเหตุการณ์บางอย่าง เช่น เปิดเอกสาร อย่างไรก็ตาม ทริกเกอร์ที่ติดตั้งได้จะมีความยืดหยุ่นมากกว่าทริกเกอร์ทั่วไป กล่าวคือ สามารถเรียกใช้บริการที่ต้องให้สิทธิ์ และเสนอเหตุการณ์เพิ่มเติมหลายประเภท เช่น ทริกเกอร์ที่ขับเคลื่อนด้วยเวลา (นาฬิกา) และสามารถควบคุมแบบเป็นโปรแกรมได้ Apps Script จะส่งออบเจ็กต์เหตุการณ์ที่มีข้อมูลเกี่ยวกับบริบทที่เกิดเหตุการณ์สําหรับทั้งทริกเกอร์แบบง่ายและที่ติดตั้งได้
ข้อจำกัด
แม้ว่าทริกเกอร์ที่ติดตั้งได้จะมีความยืดหยุ่นมากกว่าทริกเกอร์ทั่วไป แต่ทริกเกอร์ยังมีข้อจํากัดหลายรายการดังนี้
- โดยจะไม่ทํางานหากเปิดไฟล์ในโหมดอ่านอย่างเดียว (ดูหรือแสดงความคิดเห็น) สําหรับสคริปต์แบบสแตนด์อโลน ผู้ใช้ต้องมีสิทธิ์ดูไฟล์เป็นอย่างน้อยเพื่อให้ทริกเกอร์ทํางานได้อย่างถูกต้อง
การเรียกใช้สคริปต์และคําขอ API ไม่ทําให้ทริกเกอร์ทํางาน เช่น การเรียก
FormResponse.submit()
เพื่อส่งการตอบกลับใหม่ไม่ทําให้ทริกเกอร์การส่งแบบฟอร์มทํางานทริกเกอร์ที่ติดตั้งได้จะทํางานภายใต้บัญชีของผู้ที่สร้างเสมอ เช่น หากคุณสร้างทริกเกอร์แบบเปิดที่ติดตั้งได้ ทริกเกอร์นั้นจะทํางานเมื่อเพื่อนร่วมงานเปิดเอกสาร (หากเพื่อนร่วมงานมีสิทธิ์แก้ไข) แต่ทํางานเป็นบัญชีของคุณ ซึ่งหมายความว่าหากคุณสร้างทริกเกอร์ให้ส่งอีเมลเมื่อเปิดเอกสาร ระบบจะส่งอีเมลจากบัญชีของคุณเสมอ และไม่จําเป็นต้องเป็นบัญชีที่เปิดเอกสาร อย่างไรก็ตาม คุณจะสร้างทริกเกอร์แบบติดตั้งได้สําหรับแต่ละบัญชีได้ ซึ่งจะส่งผลให้มีการส่งอีเมลเดียวจากแต่ละบัญชี
บัญชีหนึ่งๆ จะไม่เห็นทริกเกอร์ที่ติดตั้งจากบัญชีที่ 2 แม้ว่าบัญชีแรกจะยังเปิดใช้งานทริกเกอร์เหล่านั้นได้อยู่
ทริกเกอร์ที่ติดตั้งได้จะขึ้นอยู่กับขีดจํากัดโควต้าของทริกเกอร์ Apps Script
ทริกเกอร์ที่ขับเคลื่อนด้วยเวลา
ทริกเกอร์ที่ขับเคลื่อนด้วยเวลา (หรือที่เรียกว่าทริกเกอร์นาฬิกา) คล้ายกับงาน Cron ใน Unix ทริกเกอร์ตามเวลาช่วยให้สคริปต์ทํางานในเวลาใดเวลาหนึ่งหรือเป็นระยะๆ ได้บ่อยพอๆ กับแต่ละนาทีหรือไม่บ่อยครั้งละครั้ง (โปรดทราบว่าส่วนเสริมสามารถใช้ทริกเกอร์ที่ขับเคลื่อนด้วยเวลาไม่เกิน 1 ครั้งต่อชั่วโมง) เวลาอาจแบบสุ่มเล็กน้อย เช่น หากคุณสร้างทริกเกอร์ที่เกิดซ้ํา 9:00 น. Apps Script จะเลือกเวลาระหว่าง 09:00 - 10:00 น. รวมถึงให้เวลานั้นสอดคล้องกันในแต่ละวันเพื่อให้ผ่านไป 24 ชั่วโมงก่อนที่ทริกเกอร์จะเริ่มทํางานอีกครั้ง
ทริกเกอร์ที่ขับเคลื่อนด้วยเหตุการณ์
ทริกเกอร์ที่ขับเคลื่อนโดยเหตุการณ์ที่ติดตั้งได้มีแนวคิดคล้ายกับทริกเกอร์แบบง่าย เช่น onOpen()
แต่สามารถตอบสนองต่อเหตุการณ์เพิ่มเติม แต่มีลักษณะการทํางานที่แตกต่างออกไป
เช่น ทริกเกอร์เปิดที่ติดตั้งได้สําหรับ Google ชีตจะเปิดใช้งานเมื่อใดก็ตามที่ผู้ใช้ที่มีสิทธิ์แก้ไขเปิดสเปรดชีต เช่นเดียวกับทริกเกอร์ onOpen()
แบบง่าย แต่เวอร์ชันที่ติดตั้งได้จะเรียกใช้บริการที่ต้องมีการให้สิทธิ์ได้ เวอร์ชันที่ติดตั้งได้จะทํางานร่วมกับการให้สิทธิ์ของผู้ใช้ที่สร้างทริกเกอร์ แม้ว่าผู้ใช้คนอื่นที่มีสิทธิ์แก้ไขจะเปิดสเปรดชีตก็ตาม
ทริกเกอร์ที่ติดตั้งได้หลายแอปพลิเคชันสําหรับ Google Workspace แอปพลิเคชัน ได้แก่
- ทริกเกอร์เปิดที่ติดตั้งได้จะทํางานเมื่อผู้ใช้เปิดสเปรดชีต เอกสาร หรือแบบฟอร์มที่มีสิทธิ์แก้ไข
- ทริกเกอร์แก้ไขที่ติดตั้งได้จะทํางานเมื่อผู้ใช้แก้ไขค่าในสเปรดชีต
- ทริกเกอร์การเปลี่ยนแปลงที่ติดตั้งได้จะทํางานเมื่อผู้ใช้แก้ไขโครงสร้างของสเปรดชีตเอง เช่น ด้วยการเพิ่มแผ่นงานใหม่หรือนําคอลัมน์ออก
- ทริกเกอร์การส่งแบบฟอร์มที่ติดตั้งได้จะทํางานเมื่อผู้ใช้ตอบกลับแบบฟอร์ม ทริกเกอร์การส่งแบบฟอร์มมี 2 เวอร์ชัน ได้แก่ เวอร์ชันสําหรับ Google ฟอร์มเอง และเวอร์ชันสําหรับชีต 1 แบบฟอร์มหากแบบฟอร์มส่งไปยังสเปรดชีต
- ทริกเกอร์กิจกรรมในปฏิทินแบบติดตั้งได้จะทํางานเมื่อมีการอัปเดตกิจกรรมในปฏิทิน สร้าง แก้ไข หรือลบกิจกรรมในปฏิทินของผู้ใช้
คุณสามารถใช้ทริกเกอร์ที่ติดตั้งได้ในสคริปต์แบบสแตนด์อโลนและที่ผูกไว้ เช่น สคริปต์แบบสแตนด์อโลนสามารถสร้างทริกเกอร์ที่ติดตั้งได้สําหรับไฟล์ Google ชีตที่กําหนดเองด้วยการเรียก TriggerBuilder.forSpreadsheet(key)
และส่งในรหัสของสเปรดชีต
การจัดการทริกเกอร์ด้วยตนเอง
วิธีสร้างทริกเกอร์แบบติดตั้งด้วยตนเองในเครื่องมือแก้ไขสคริปต์
- เปิดโปรเจ็กต์ Apps Script
- คลิกทริกเกอร์ ทางด้านซ้าย
- คลิกเพิ่มทริกเกอร์ที่ด้านล่างขวา
- เลือกและกําหนดค่าประเภททริกเกอร์ที่ต้องการสร้าง
- คลิกบันทึก
การจัดการทริกเกอร์แบบเป็นโปรแกรม
คุณยังสร้างและลบทริกเกอร์แบบเป็นโปรแกรมได้ด้วยบริการสคริปต์ เริ่มต้นด้วยการโทรหา
ScriptApp.newTrigger(functionName)
ซึ่งจะแสดงผล TriggerBuilder
ตัวอย่างต่อไปนี้แสดงวิธีสร้างทริกเกอร์ที่ใช้เวลา 2 รายการ รายการหนึ่งเริ่มทํางานเมื่อ 6 ชั่วโมง และรายการหนึ่งเริ่มทํางานทุกวันจันทร์เวลา 09:00 น. (ในเขตเวลาที่มีการตั้งค่าสคริปต์ไว้)
ตัวอย่างถัดไปนี้จะแสดงวิธีสร้างทริกเกอร์แบบเปิดที่ติดตั้งได้สําหรับสเปรดชีต โปรดทราบว่าสคริปต์สําหรับทริกเกอร์ที่ติดตั้งได้ไม่จําเป็นต้องเชื่อมโยงกับสเปรดชีต ซึ่งต่างจากทริกเกอร์ onOpen()
แบบง่าย หากต้องการสร้างทริกเกอร์นี้จากสคริปต์แบบสแตนด์อโลน ให้แทนที่ SpreadsheetApp.getActive()
ด้วยการเรียก SpreadsheetApp.openById(id)
หากต้องการแก้ไขทริกเกอร์ที่ติดตั้งได้แบบเป็นโปรแกรม คุณต้องลบและสร้างทริกเกอร์ใหม่ หากคุณเคยเก็บรหัสของทริกเกอร์ไว้แล้ว ให้ลบรหัสนั้นด้วยการส่งรหัสเป็นอาร์กิวเมนต์ไปยังฟังก์ชันด้านล่าง
ข้อผิดพลาดในทริกเกอร์
เมื่อทริกเกอร์ที่ติดตั้งได้เริ่มทํางาน แต่ฟังก์ชันมีข้อยกเว้นหรือเรียกใช้ไม่สําเร็จ คุณจะเห็นข้อความแสดงข้อผิดพลาดบนหน้าจอ เพราะเมื่อทริกเกอร์ที่ทํางานตามเวลาหรือผู้ใช้รายอื่นเปิดใช้งานทริกเกอร์การส่งแบบฟอร์ม คุณอาจไม่ได้อยู่หน้าคอมพิวเตอร์
แต่ Apps Script จะส่งอีเมลดังนี้
From: apps-scripts-notifications@google.com Subject: Summary of failures for Google Apps Script Your script has recently failed to finish successfully. A summary of the failure(s) is shown below.
โดยอีเมลจะมีลิงก์สําหรับปิดใช้งานหรือกําหนดค่าทริกเกอร์อีกครั้ง หากสคริปต์เชื่อมโยงกับไฟล์ Google ชีต เอกสาร หรือฟอร์ม อีเมลจะมีลิงก์ไปยังไฟล์นั้นด้วย ลิงก์เหล่านี้ช่วยให้คุณปิดใช้งานทริกเกอร์หรือแก้ไขสคริปต์เพื่อแก้ไขข้อบกพร่องได้
หากต้องการตรวจสอบทริกเกอร์ทั้งหมดที่เชื่อมโยงกับบัญชี Google และปิดทริกเกอร์ที่ไม่ต้องการแล้ว ให้ทําตามขั้นตอนต่อไปนี้
- ไปที่
script.google.com
- คลิกทริกเกอร์ของฉันทางด้านซ้าย
หากต้องการลบทริกเกอร์ ที่ด้านขวาของทริกเกอร์ ให้คลิกเพิ่มเติม
> ลบทริกเกอร์
ทริกเกอร์ที่ติดตั้งได้ในส่วนเสริม
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ทริกเกอร์ที่ติดตั้งได้ในส่วนเสริมที่ทริกเกอร์ส่วนเสริม