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