เช่นเดียวกับทริกเกอร์แบบง่าย ทริกเกอร์ที่ติดตั้งได้จะอนุญาตให้ Apps Script เรียกใช้ฟังก์ชันโดยอัตโนมัติเมื่อเกิดเหตุการณ์บางอย่าง เช่น การเปิดเอกสาร อย่างไรก็ตาม ทริกเกอร์ที่ติดตั้งได้นั้นให้ความยืดหยุ่นมากกว่าทริกเกอร์ทั่วไป กล่าวคือ ทริกเกอร์บริการที่ต้องให้สิทธิ์ได้ มีเหตุการณ์ประเภทอื่นๆ มากมาย ซึ่งรวมถึงทริกเกอร์ที่ขึ้นกับเวลา (นาฬิกา) และสามารถควบคุมได้จากการเขียนโปรแกรม สําหรับทั้งทริกเกอร์แบบง่ายและที่ติดตั้งได้ Apps Script จะส่งออบเจ็กต์เหตุการณ์ที่มีฟังก์ชันที่ทริกเกอร์ซึ่งมีข้อมูลเกี่ยวกับบริบทที่เกิดเหตุการณ์ขึ้น
ข้อจำกัด
แม้ว่าทริกเกอร์ที่ติดตั้งได้จะมีความยืดหยุ่นมากกว่าทริกเกอร์ทั่วไป แต่ก็ยังคงมีข้อจํากัดหลายประการ ดังนี้
- ไฟล์เหล่านี้จะไม่ทํางานหากเปิดไฟล์ในโหมดอ่านอย่างเดียว (ดูหรือแสดงความคิดเห็น) สําหรับสคริปต์แบบสแตนด์อโลน ผู้ใช้ต้องมีสิทธิ์ในการดูไฟล์สคริปต์เป็นอย่างน้อยเพื่อให้ทริกเกอร์ทํางานได้อย่างถูกต้อง
การเรียกใช้สคริปต์และคําขอ API จะไม่ทําให้ทริกเกอร์ทํางาน เช่น การเรียกใช้
FormResponse.submit()
เพื่อส่งการตอบกลับแบบฟอร์มใหม่ไม่ได้ทําให้ทริกเกอร์การส่งแบบฟอร์มเรียกใช้ทริกเกอร์ที่ติดตั้งได้จะทํางานภายใต้บัญชีของผู้ที่สร้างทริกเกอร์นั้นเสมอ ตัวอย่างเช่น ถ้าคุณสร้างทริกเกอร์เปิดที่ติดตั้งได้ ทริกเกอร์นั้นจะทํางานเมื่อเพื่อนร่วมงานของคุณเปิดเอกสาร (หากเพื่อนร่วมงานของคุณมีสิทธิ์แก้ไข) แต่จะทํางานเป็นบัญชีของคุณ ซึ่งหมายความว่าหากคุณสร้างทริกเกอร์ให้ส่งอีเมลเมื่อเปิดเอกสาร อีเมลนั้นจะส่งจากบัญชีของคุณเสมอ ไม่จําเป็นต้องเป็นบัญชีที่เปิดเอกสาร อย่างไรก็ตาม คุณสามารถสร้างทริกเกอร์ที่ติดตั้งได้สําหรับแต่ละบัญชี ซึ่งจะส่งผลกับอีเมลเดียวที่ส่งจากแต่ละบัญชี
บัญชีหนึ่งๆ จะดูทริกเกอร์ที่ติดตั้งจากบัญชีที่ 2 ไม่ได้ แม้ว่าบัญชีแรกจะยังเปิดใช้งานทริกเกอร์เหล่านั้นได้ก็ตาม
ทริกเกอร์ที่ติดตั้งได้จะขึ้นอยู่กับขีดจํากัดโควต้าของทริกเกอร์ Apps Script
ทริกเกอร์ที่ขึ้นกับเวลา
ทริกเกอร์ที่ใช้เวลา (หรือที่เรียกว่าทริกเกอร์นาฬิกา) คล้ายกับงาน Cron ใน Unix ทริกเกอร์ที่ขึ้นกับเวลาช่วยให้สคริปต์ทํางานตามเวลาที่กําหนดหรือตามรอบเวลาได้บ่อยพอๆ กับทุกๆ นาทีหรือไม่บ่อยต่อเดือน (โปรดทราบว่าส่วนเสริมจะใช้ทริกเกอร์ที่ทํางานได้ตามเวลาไม่เกิน 1 ครั้งต่อชั่วโมง) โดยอาจสุ่มเวลาเล็กน้อย เช่น หากคุณสร้างทริกเกอร์ที่เกิดซ้ําเวลา 9.00 น. Apps Script จะเลือกเวลาระหว่าง 9.00 - 10.00 น. และให้เวลานั้นสอดคล้องกันทุกๆ วันเพื่อให้เวลา 24 ชั่วโมงก่อนทริกเกอร์เริ่มทํางานอีกครั้ง
ทริกเกอร์ที่ขึ้นอยู่กับเหตุการณ์
ทริกเกอร์ที่ขึ้นอยู่กับเหตุการณ์ซึ่งติดตั้งได้มีแนวคิดคล้ายกับทริกเกอร์แบบง่าย เช่น onOpen()
แต่ตอบสนองตามเหตุการณ์อื่นๆ ได้และมีลักษณะการทํางานต่างกัน
ตัวอย่างเช่น ทริกเกอร์แบบเปิดที่ติดตั้งได้สําหรับ Google ชีตจะทํางานเมื่อใดก็ตามที่ผู้ใช้ที่มีสิทธิ์แก้ไขเปิดสเปรดชีต เช่นเดียวกับทริกเกอร์ onOpen()
แบบง่าย อย่างไรก็ตาม เวอร์ชันที่ติดตั้งได้จะเรียกใช้บริการที่ต้องมีการให้สิทธิ์ได้ เวอร์ชันที่ติดตั้งได้จะทํางานร่วมกับการให้สิทธิ์ของผู้ใช้ที่สร้างทริกเกอร์ แม้ว่าผู้ใช้รายอื่นที่มีสิทธิ์แก้ไขจะเปิดสเปรดชีตนั้นก็ตาม
มีทริกเกอร์ที่ติดตั้งได้หลายแบบสําหรับ Google Workspace แอปพลิเคชัน
- ทริกเกอร์เปิดที่ติดตั้งได้จะทํางานเมื่อผู้ใช้เปิดสเปรดชีต เอกสาร หรือฟอร์มที่มีสิทธิ์แก้ไข
- ทริกเกอร์แก้ไขที่ติดตั้งได้จะทํางานเมื่อผู้ใช้แก้ไขค่าในสเปรดชีต
- ทริกเกอร์การเปลี่ยนแปลงที่ติดตั้งได้จะทํางานเมื่อผู้ใช้แก้ไขโครงสร้างของสเปรดชีต เช่น โดยการเพิ่มแผ่นงานใหม่หรือนําคอลัมน์ออก
- ทริกเกอร์การส่งแบบฟอร์มที่ติดตั้งได้จะทํางานเมื่อผู้ใช้ตอบกลับแบบฟอร์ม ทริกเกอร์การส่งแบบฟอร์มมี 2 เวอร์ชัน สําหรับ Google ฟอร์มเอง และเวอร์ชันสําหรับชีต หากแบบฟอร์มส่งไปยังสเปรดชีต
- ทริกเกอร์กิจกรรมในปฏิทินที่ติดตั้งได้จะทํางานเมื่อมีการอัปเดต สร้าง หรือลบกิจกรรมในปฏิทินของผู้ใช้
คุณสามารถใช้ทริกเกอร์ที่ติดตั้งได้ในสคริปต์แบบสแตนด์อโลนและที่เชื่อมโยงไว้ เช่น สคริปต์แบบสแตนด์อโลนจะสร้างทริกเกอร์ที่ติดตั้งได้สําหรับไฟล์ Google ชีตที่กําหนดเองโดยการเรียกใช้ TriggerBuilder.forSpreadsheet(key)
และส่งผ่านรหัสของสเปรดชีต
การจัดการทริกเกอร์ด้วยตนเอง
หากต้องการสร้างทริกเกอร์ที่ติดตั้งได้ด้วยตัวเองในโปรแกรมแก้ไขสคริปต์ ให้ทําตามขั้นตอนต่อไปนี้
- เปิดโครงการ Apps Script
- คลิกทริกเกอร์ ทางด้านซ้าย
- คลิกเพิ่มทริกเกอร์ที่ด้านล่างขวา
- เลือกและกําหนดค่าประเภททริกเกอร์ที่คุณต้องการสร้าง
- คลิกบันทึก
การจัดการทริกเกอร์แบบเป็นโปรแกรม
นอกจากนี้ คุณยังสร้างและลบทริกเกอร์แบบเป็นโปรแกรมได้ด้วยบริการสคริปต์ เริ่มต้นด้วยการโทรหา ScriptApp.newTrigger(functionName)
ซึ่งจะแสดงผล TriggerBuilder
ตัวอย่างต่อไปนี้แสดงวิธีสร้างทริกเกอร์ที่ขึ้นกับเวลา 2 ตัว ตัวหนึ่งที่เริ่มทํางานทุก 6 ชั่วโมง ตัวที่เริ่มทํางานทุกวันจันทร์เวลา 9.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
- คลิกทริกเกอร์ของฉันทางด้านซ้าย
หากต้องการลบทริกเกอร์ ทางด้านขวาของทริกเกอร์ ให้คลิกเพิ่มเติม
> ลบทริกเกอร์
ทริกเกอร์ที่ติดตั้งได้ในส่วนเสริม
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ทริกเกอร์ที่ติดตั้งได้ในส่วนเสริมในทริกเกอร์ส่วนเสริม