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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

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

หากต้องการใช้ทริกเกอร์ง่ายๆ เพียงสร้างฟังก์ชันที่ใช้ชื่อฟังก์ชันที่สงวนไว้อย่างใดอย่างหนึ่งต่อไปนี้

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

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

ข้อจำกัด

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

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

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

onOpen(e)

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

ทริกเกอร์/ทริกเกอร์.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) จะไม่ทํางานด้วยตนเอง เว้นแต่ไฟล์จะเปิดอีกครั้ง

ทริกเกอร์/ทริกเกอร์.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) ส่วนใหญ่จะใช้ข้อมูลในออบเจ็กต์เหตุการณ์เพื่อให้ตอบสนองได้อย่างเหมาะสม เช่น ฟังก์ชัน onEdit(e) ด้านล่างจะตั้งค่าความคิดเห็นในเซลล์ที่จะบันทึกครั้งล่าสุดที่มีการแก้ไข

ทริกเกอร์/ทริกเกอร์.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) จะตั้งค่าพื้นหลังของเซลล์เป็นสีแดง

ทริกเกอร์/ทริกเกอร์.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 แบบ HTTP ไปยังเว็บแอป ทริกเกอร์เหล่านี้จะแสดงในคู่มือเกี่ยวกับเว็บแอป บริการ 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 ฟอร์มจะไม่ปรากฏขึ้นเมื่อผู้ใช้เปิดแบบฟอร์ม แต่จะเปิดเมื่อเครื่องมือแก้ไขเปิดเพื่อแก้ไข