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