ทริกเกอร์อย่างง่าย

ทริกเกอร์จะให้ Apps Script เรียกใช้ฟังก์ชันโดยอัตโนมัติเมื่อเกิดเหตุการณ์บางอย่าง ก็เหมือนกับการเปิดเอกสาร ทริกเกอร์อย่างง่ายคือ ของฟังก์ชันที่สงวนไว้ซึ่งมีอยู่ใน Apps Script เช่น ฟังก์ชัน onOpen(e) ซึ่งทำงานเมื่อผู้ใช้เปิดไฟล์ Google เอกสาร, ชีต, สไลด์ หรือฟอร์ม ทริกเกอร์ที่ติดตั้งได้จะให้ประโยชน์มากกว่า มากกว่าทริกเกอร์ธรรมดา แต่ต้องเปิดใช้งานก่อนใช้งาน สำหรับทั้ง 2 กลุ่ม ประเภททริกเกอร์ สคริปต์ Apps จะส่งฟังก์ชันที่ทริกเกอร์ event object ที่มีข้อมูล เกี่ยวกับบริบทที่เหตุการณ์เกิดขึ้น

เริ่มต้นใช้งาน

หากต้องการใช้ทริกเกอร์แบบง่าย เพียงสร้างฟังก์ชันที่ใช้ทริกเกอร์เหล่านี้ ชื่อฟังก์ชันที่สงวนไว้:

  • onOpen(e) ทำงานเมื่อผู้ใช้เปิดสเปรดชีต เอกสาร งานนำเสนอ หรือ ที่ผู้ใช้มีสิทธิ์แก้ไข
  • onInstall(e) จะทำงานเมื่อผู้ใช้ติดตั้ง ส่วนเสริมเอดิเตอร์จากภายใน Google เอกสาร, ชีต, สไลด์ หรือฟอร์ม
  • onEdit(e) ทำงานเมื่อผู้ใช้เปลี่ยนค่าในสเปรดชีต
  • onSelectionChange(e) ทำงานเมื่อผู้ใช้เปลี่ยนแปลงการเลือกในสเปรดชีต
  • doGet(e) ทำงานเมื่อผู้ใช้เข้าชมเว็บแอป หรือโปรแกรมส่งคำขอ HTTP GET ไปยังเว็บแอป
  • doPost(e) ทำงานเมื่อโปรแกรมส่งคำขอ HTTP POST ไปยังเว็บแอป

พารามิเตอร์ e ในชื่อฟังก์ชันด้านบนเป็น ออบเจ็กต์เหตุการณ์ที่ส่งไปยัง ออบเจ็กต์มีข้อมูลเกี่ยวกับบริบทที่ทำให้เกิดเหตุการณ์ ทริกเกอร์ให้เริ่มทำงาน แต่อาจเลือกใช้หรือไม่ก็ได้

ข้อจำกัด

เนื่องจากทริกเกอร์แบบง่ายจะเริ่มทำงานโดยอัตโนมัติโดยไม่ต้องถามผู้ใช้ การขออนุญาตนั้นจะอยู่ภายใต้ข้อจำกัดหลายประการ ดังนี้

  • สคริปต์ต้องเชื่อมโยงกับ ไฟล์ชีต, สไลด์, เอกสาร หรือฟอร์ม หรือเป็น ส่วนเสริมที่ขยาย แอปพลิเคชันเหล่านั้น
  • โดยจะไม่ทำงานหากเปิดไฟล์ในโหมดอ่านอย่างเดียว (ดูหรือแสดงความคิดเห็น)
  • การเรียกใช้สคริปต์และคำขอ API จะไม่ทำให้ทริกเกอร์ทำงาน ตัวอย่างเช่น กำลังโทรหา Range.setValue() การแก้ไขเซลล์จะไม่ทำให้ทริกเกอร์ onEdit ของสเปรดชีตทำงาน
  • ผู้ใช้จะไม่สามารถเข้าถึงบริการที่กำหนดให้ การให้สิทธิ์ ตัวอย่างเช่น ทริกเกอร์แบบง่ายไม่สามารถส่งอีเมลได้ เนื่องจาก บริการ Gmail ต้องได้รับการให้สิทธิ์ แต่ ทริกเกอร์ง่ายๆ สามารถแปลวลีที่มี บริการภาษา ซึ่งจะไม่ระบุตัวตน
  • โดยผู้ใช้จะแก้ไขไฟล์ที่ตนเองเชื่อมโยงได้ แต่เข้าถึงไฟล์อื่นไม่ได้ เนื่องจากต้องได้รับสิทธิ์
  • ซึ่งอาจจะมีหรือไม่สามารถระบุตัวตนของผู้ใช้ปัจจุบัน ขึ้นอยู่กับ ข้อจำกัดด้านความปลอดภัยที่ซับซ้อน
  • และจะทํางานได้ไม่เกิน 30 วินาที
  • ในบางกรณี ส่วนเสริมเครื่องมือแก้ไขจะเรียกใช้ onOpen(e) และ onEdit(e) ทริกเกอร์อย่างง่ายในโหมดไม่มีการให้สิทธิ์ที่แสดง ข้อมูลแทรกอื่นๆ เพิ่มเติม สำหรับข้อมูลเพิ่มเติม โปรดดู เกี่ยวกับวงจรการให้สิทธิ์ส่วนเสริม
  • ทริกเกอร์ทั่วไปขึ้นอยู่กับทริกเกอร์ Apps Script ขีดจำกัดโควต้า

ข้อจำกัดเหล่านี้ไม่มีผลกับ doGet(e) หรือ doPost(e)

onOpen(e)

ทริกเกอร์ onOpen(e) จะทำงานโดยอัตโนมัติเมื่อผู้ใช้เปิดสเปรดชีต เอกสาร งานนำเสนอ หรือแบบฟอร์มที่บุคคลเหล่านั้นมีสิทธิ์แก้ไข (พารามิเตอร์ ทริกเกอร์ไม่ทำงานเมื่อตอบแบบฟอร์ม เฉพาะเมื่อเปิดแบบฟอร์มเพื่อ แก้ไข) onOpen(e) มักใช้เพื่อเพิ่มรายการที่กำหนดเอง รายการในเมนูเป็น Google ชีต, สไลด์, เอกสาร หรือ ฟอร์ม

triggers/triggers.gs
/**
 * The event handler triggered when opening the spreadsheet.
 * @param {Event} e The onOpen event.
 * @see https://developers.google.com/apps-script/guides/triggers#onopene
 */
function onOpen(e) {
  // Add a custom menu to the spreadsheet.
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
      .createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addToUi();
}

onInstall(e)

ทริกเกอร์ onInstall(e) จะทำงานโดยอัตโนมัติเมื่อผู้ใช้ติดตั้ง ส่วนเสริมเอดิเตอร์จากภายใน Google เอกสาร, ชีต, สไลด์ หรือฟอร์ม ทริกเกอร์จะไม่ทำงานเมื่อผู้ใช้ ติดตั้งส่วนเสริมจาก Google Workspace Marketplace เว็บไซต์ของคุณ โปรดทราบว่า มีข้อจำกัดบางอย่างเกี่ยวกับสิ่งที่ onInstall(e) ทำได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ การให้สิทธิ์ การใช้ onInstall(e) ที่พบบ่อยที่สุดก็คือการโทรหา onOpen(e) เพื่อเพิ่ม เมนูที่กำหนดเอง เพราะหากติดตั้งส่วนเสริมแล้ว ไฟล์ก็จะเปิดขึ้นมา ดังนั้น onOpen(e) จึงไม่สามารถทำงานได้เอง เว้นแต่จะมีการเปิดไฟล์อีกครั้ง

triggers/triggers.gs
/**
 * The event handler triggered when installing the add-on.
 * @param {Event} e The onInstall event.
 * @see https://developers.google.com/apps-script/guides/triggers#oninstalle
 */
function onInstall(e) {
  onOpen(e);
}

onEdit(e)

ทริกเกอร์ onEdit(e) จะทำงานโดยอัตโนมัติเมื่อผู้ใช้เปลี่ยนค่า ของเซลล์ในสเปรดชีต ทริกเกอร์ onEdit(e) ส่วนใหญ่ใช้ข้อมูลใน event object เพื่อให้ตอบสนองได้อย่างเหมาะสม เช่น ฟังก์ชัน onEdit(e) ด้านล่างจะตั้งค่าความคิดเห็นในเซลล์ที่ บันทึกเวลาที่มีการแก้ไขครั้งล่าสุด

triggers/triggers.gs
/**
 * The event handler triggered when editing the spreadsheet.
 * @param {Event} e The onEdit event.
 * @see https://developers.google.com/apps-script/guides/triggers#onedite
 */
function onEdit(e) {
  // Set a comment on the edited cell to indicate when it was changed.
  const range = e.range;
  range.setNote('Last modified: ' + new Date());
}

onSelectionChange(e)

ทริกเกอร์ onSelectionChange(e) จะทำงานโดยอัตโนมัติเมื่อผู้ใช้เปลี่ยนแปลง ในสเปรดชีต หากต้องการเปิดใช้งานทริกเกอร์นี้ คุณต้องรีเฟรช สเปรดชีตเมื่อมีการเพิ่มทริกเกอร์และทุกครั้งที่เปิดสเปรดชีต

หากการเลือกย้ายไปมาระหว่างหลายเซลล์ในช่วงเวลาสั้นๆ การเลือกบางส่วน ระบบอาจข้ามเหตุการณ์การเปลี่ยนแปลงเพื่อลดเวลาในการตอบสนอง เช่น หากเลือกหลายรายการ เกิดขึ้นภายใน 2 วินาทีติดต่อกัน เฉพาะรายการแรกและสุดท้าย การเปลี่ยนแปลงการเลือกจะเปิดใช้งานทริกเกอร์ onSelectionChange(e)

ในตัวอย่างด้านล่าง หากเลือกเซลล์ว่าง ฟังก์ชัน onSelectionChange(e) จะตั้งค่าฟังก์ชัน เป็นสีแดง

triggers/triggers.gs
/**
 * The event handler triggered when the selection changes in the spreadsheet.
 * @param {Event} e The onSelectionChange event.
 * @see https://developers.google.com/apps-script/guides/triggers#onselectionchangee
 */
function onSelectionChange(e) {
  // Set background to red if a single empty cell is selected.
  const range = e.range;
  if (range.getNumRows() === 1 &&
    range.getNumColumns() === 1 &&
    range.getCell(1, 1).getValue() === '') {
    range.setBackground('red');
  }
}

doGet(e) และ doPost(e)

ทริกเกอร์ doGet(e) จะทำงานโดยอัตโนมัติเมื่อผู้ใช้เข้าชม เว็บแอปหรือโปรแกรมส่งคำขอ HTTP GET กับเว็บแอป doPost(e) ทำงานเมื่อโปรแกรมส่งคำขอ HTTP POST ไปยัง เว็บแอป ทริกเกอร์เหล่านี้จะปรากฏในคู่มือเพื่อ เว็บแอป, บริการ HTML และบริการเนื้อหา โปรดทราบว่า doGet(e) และ doPost(e) ไม่ได้อยู่ภายใต้ข้อจำกัดที่ระบุไว้ข้างต้น

ประเภททริกเกอร์ที่มีให้บริการ

หากข้อจำกัดของทริกเกอร์ทั่วไปทำให้ไม่เป็นไปตามข้อกำหนด ทริกเกอร์ที่ติดตั้งได้ อาจทำงานแทน ตารางด้านล่างจะสรุปประเภทของทริกเกอร์ พร้อมใช้งานสำหรับกิจกรรมแต่ละประเภท เช่น Google ชีต, สไลด์, ฟอร์ม และ เอกสารทั้งหมดรองรับทริกเกอร์แบบเปิดทั่วไป แต่รองรับเฉพาะชีต เอกสาร และฟอร์มเท่านั้น ทริกเกอร์เปิดที่ติดตั้งได้

กิจกรรม ทริกเกอร์อย่างง่าย ทริกเกอร์ที่ติดตั้งได้
เปิด
วันที่
ชีต
สไลด์
ฟอร์ม*
เอกสาร

function onOpen(e)

วันที่
ชีต
ฟอร์ม*
เอกสาร
แก้ไข
วันที่
ชีต

function onEdit(e)

วันที่
ชีต
การเปลี่ยนแปลงการเลือก
วันที่
ชีต

function onSelectionChange(e)

ติดตั้ง
วันที่
ชีต
สไลด์
ฟอร์ม
เอกสาร

function onInstall(e)

เปลี่ยน
วันที่
ชีต
การส่งแบบฟอร์ม
วันที่
ชีต
ฟอร์ม
ตามเวลา (นาฬิกา)
วันที่
ชีต
สไลด์
ฟอร์ม
เอกสาร
สแตนด์อโลน
ดาวน์โหลด
วันที่
สแตนด์อโลน

function doGet(e)

โพสต์
วันที่
สแตนด์อโลน

function doPost(e)

* กิจกรรมที่เปิดอยู่สำหรับ Google ฟอร์มจะไม่เกิดขึ้นเมื่อผู้ใช้เปิด ในการตอบกลับ แต่แทนที่จะเปิดแบบฟอร์มเพื่อแก้ไข