Google Apps Script สำหรับ Google Forms: คู่มือสำหรับผู้เริ่มต้น

คำตอบสั้น ๆ: Google Apps Script เป็นแพลตฟอร์ม JavaScript ในตัวของ Google ที่ฟรีสำหรับสร้างระบบอัตโนมัติให้ Forms, Sheets และแอป Workspace อื่น ๆ มันคือวิธีที่คนใช้เพิ่มสิ่งที่ Forms ทำไม่ได้โดยธรรมชาติ — เช่น ส่งอีเมลถึงเจ้าของทุกครั้งที่มีการส่ง จำกัดคำตอบโดยอัตโนมัติ หรือสร้างเอกสารยืนยันแบบ PDF มันต้องการความรู้การเขียนโค้ดพื้นฐาน ซึ่งเป็นอุปสรรคที่แท้จริงในการเริ่มต้น

Google Forms ตั้งใจให้เรียบง่าย ซึ่งหมายความว่าคำขอทั่วไปหลายอย่าง — "ส่งอีเมลให้ฉันเมื่อมีคนส่งคำตอบ" "หยุดรับคำตอบหลังจาก 50 รายการ" "ตรวจสอบฟิลด์นี้ในแบบที่ Forms ไม่รองรับ" — ไม่ได้ถูกจัดการไว้ในตัวสำเร็จรูป Google Apps Script คือเครื่องมือที่ Google ให้คุณใช้ปิดช่องว่างนั้นด้วยตัวเอง ฟรี โดยไม่ต้องออกจากระบบนิเวศของ Google คู่มือนี้อธิบายว่ามันคืออะไร มันทำอะไรได้จริงสำหรับฟอร์มของคุณ ตัวอย่างง่าย ๆ ของโครงสร้างของมัน และมันเหมาะกับใครจริง ๆ

Google Apps Script คืออะไร?

Apps Script คือแพลตฟอร์มสคริปต์ในตัวของ Google ที่ใช้พื้นฐาน JavaScript ซึ่งให้คุณเขียนโปรแกรมเล็ก ๆ ที่โต้ตอบกับแอป Google Workspace — Forms, Sheets, Docs, Gmail, Calendar และอื่น ๆ มันทำงานทั้งหมดบนเซิร์ฟเวอร์ของ Google ดังนั้นจึงไม่มีอะไรต้องติดตั้งและไม่ต้องจัดการโฮสติ้งแยกต่างหาก คุณเข้าถึงมันได้จากที่ใดที่หนึ่งในสองแห่ง คือจากเมนูสามจุดของฟอร์มของคุณ เลือก Script editor หรือเปิด Google Sheet ที่เชื่อมโยงไว้แล้วไปที่ Extensions > Apps Script ทั้งสองเส้นทางเปิดตัวแก้ไขแบบเดียวกัน แม้ว่าสคริปต์ที่แนบกับฟอร์มกับที่แนบกับชีตจะมีบริบทเริ่มต้นที่ต่างกันเล็กน้อย

สิ่งที่ Apps Script ให้คุณทำได้ที่ Forms ไม่มีในตัว

ตัวอย่างง่าย ๆ อธิบายในเชิงแนวคิด

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

function onFormSubmit(e) {
  // e.response holds the submitted form response
  var responses = e.response.getItemResponses();
  var summary = "";

  responses.forEach(function (itemResponse) {
    summary += itemResponse.getItem().getTitle() + ": " + itemResponse.getResponse() + "\n";
  });

  // Send the owner an email with the new response
  MailApp.sendEmail("[email protected]", "New form response", summary);
}

ส่วนสำคัญ คือ onFormSubmit(e) เป็นฟังก์ชันทริกเกอร์ — Apps Script เรียกมันโดยอัตโนมัติเมื่อมีคำตอบใหม่เข้ามา และ e เก็บข้อมูลเหตุการณ์ รวมถึง e.response ซึ่งให้คุณเข้าถึงแต่ละคำตอบผ่าน getItemResponses() จากนั้น สคริปต์สามารถทำอะไรก็ได้ที่บริการของ Apps Script รองรับ — ส่งอีเมล เขียนลงชีต เรียก API ภายนอก สร้างเอกสาร ตัวทริกเกอร์เองถูกกำหนดค่าแยกต่างหากในแผง Triggers ของตัวแก้ไข ที่ซึ่งคุณบอกให้มันรันฟังก์ชันนี้ตอน "On form submit"

การตั้งค่าทีละขั้นตอน

  1. เปิดตัวแก้ไข Script จากเมนูสามจุดของฟอร์มของคุณ หรือผ่าน Extensions > Apps Script บน Sheet ที่เชื่อมโยงไว้
  2. เขียนฟังก์ชันทริกเกอร์ อย่างตัวอย่างข้างต้น โดยอ่านคำตอบที่ส่งมาจากออบเจ็กต์เหตุการณ์
  3. เพิ่มตรรกะระบบอัตโนมัติของคุณ — อีเมลจริง PDF หรือการตรวจสอบที่คุณต้องการรัน
  4. ตั้งค่าทริกเกอร์ ในส่วน Triggers (ไอคอนนาฬิกาในแถบด้านซ้าย) เพิ่มทริกเกอร์ใหม่ที่รันฟังก์ชันของคุณบนเหตุการณ์ "From form" / "On form submit"
  5. อนุมัติสิทธิ์และทดสอบ การรันครั้งแรกจะให้คุณอนุญาตให้สคริปต์เข้าถึงฟอร์มและ Gmail ของคุณ อนุมัติแล้วส่งคำตอบทดสอบจริงเพื่อยืนยันว่าทุกอย่างทำงานถูกต้อง

ควรเรียนรู้เพิ่มเติมที่ไหน

Apps Script มีเอกสารประกอบอย่างเป็นทางการจาก Google โดยตรงอย่างละเอียด ครอบคลุมบริการ Forms ทริกเกอร์ และแอป Workspace อื่น ๆ ทั้งหมดที่มันเข้าถึงได้ หากคุณจริงจังกับการเขียนสคริปต์ของตัวเอง นั่นคือแหล่งอ้างอิงที่น่าเชื่อถือและทันสมัยที่สุด เพราะมันได้รับการดูแลควบคู่ไปกับตัวผลิตภัณฑ์เอง ไม่ใช่โดยบุคคลที่สาม

ทริกเกอร์ทั่วไปนอกเหนือจาก "on form submit"

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

การแก้ปัญหา Apps Script

  1. สคริปต์ไม่รันเมื่อมีการส่งฟอร์ม: ยืนยันว่าทริกเกอร์บันทึกไว้จริงและชี้ไปที่ "On form submit" ไม่ใช่ประเภทเหตุการณ์อื่น — ทริกเกอร์ที่สร้างในเซสชันทดสอบก่อนหน้าอาจยังคงอยู่เงียบ ๆ ข้าง ๆ ตัวใหม่ที่ตั้งค่าผิด ดังนั้นให้ตรวจสอบแผง Triggers ว่ามีรายการซ้ำหรือไม่
  2. ข้อผิดพลาด "Authorization required" ทุกครั้งที่รัน: สิทธิ์ Apps Script อาจถูกเพิกถอนได้ถ้าคุณเปลี่ยนรหัสผ่านบัญชี Google หรือถ้า Google ตรวจสอบขอบเขตที่ละเอียดอ่อนอย่างการส่ง Gmail เป็นระยะ ให้รันสคริปต์ด้วยตนเองจากตัวแก้ไขอีกครั้งเพื่อกระตุ้นพร้อมท์การอนุมัติใหม่
  3. สคริปต์ทำงานเมื่อรันด้วยตนเองแต่ไม่ทำงานอัตโนมัติ: บริการ Apps Script บางอย่าง (เช่น การแสดงกล่องโต้ตอบ UI) ทำงานเฉพาะเมื่อมนุษย์รันสคริปต์โดยตรง ไม่ใช่จากทริกเกอร์อัตโนมัติ — ทริกเกอร์อัตโนมัติต้องใช้การกระทำแบบไม่โต้ตอบอย่างการส่งอีเมลหรือการเขียนลงชีต
  4. อีเมลไม่ถูกส่ง: ระดับฟรีของ Apps Script มีโควตาอีเมลรายวัน (สูงกว่าสำหรับบัญชี Google Workspace มากกว่าบัญชี Gmail ส่วนตัว) — ฟอร์มที่มีปริมาณมากอาจถึงเพดานนั้น ทำให้อีเมลในช่วงหลังของวันล้มเหลวอย่างเงียบ ๆ

อุปสรรคในการเริ่มต้นที่ตรงไปตรงมา

Apps Script ต้องการการเขียนโค้ดจริง โดยเฉพาะ JavaScript พื้นฐาน มันไม่ใช่เครื่องมือแบบไม่ต้องเขียนโค้ด และการปฏิบัติต่อมันเหมือนสวิตช์การตั้งค่าง่าย ๆ จะนำไปสู่ความหงุดหงิดถ้าคุณไม่เคยเขียนโค้ดมาก่อน การอ่านและปรับตัวอย่างสั้น ๆ อย่างที่แสดงข้างต้นเป็นเรื่องที่ทำได้จริงสำหรับผู้เริ่มต้นที่มีแรงจูงใจ แต่การสร้างสิ่งที่ซับซ้อนกว่านี้ อย่างการตรวจสอบหลายขั้นตอนหรือการสร้าง PDF ต้องใช้ความรู้การเขียนโปรแกรมจริง

อุปสรรคนั้นคือช่องว่างที่ส่วนเสริมจากบุคคลที่สามแบบไม่ต้องเขียนโค้ดเข้ามาเติมเต็มสำหรับคนที่ต้องการระบบอัตโนมัติโดยไม่ต้องเขียนสคริปต์ และเป็นช่องว่างเดียวกันที่แอปที่สร้างมาเฉพาะทางอย่าง FormMaker เข้ามาเติมเต็มสำหรับปัญหาที่แตกต่างไปโดยสิ้นเชิง — การสร้างและจัดการตัวฟอร์มเองบนมือถือ โดยไม่ต้องแตะโค้ดเลย ทั้งสองอย่างไม่ได้แทนที่ Apps Script สำหรับการปรับแต่งเชิงลึก แต่ทั้งสองก็ไม่จำเป็นต้องใช้มันเช่นกัน

คำถามที่พบบ่อย

Google Apps Script คืออะไร?

Google Apps Script คือแพลตฟอร์มในตัวของ Google ที่ใช้ JavaScript สำหรับสร้างระบบอัตโนมัติและขยายความสามารถของแอป Google Workspace รวมถึง Forms, Sheets และ Gmail มันทำงานบนเซิร์ฟเวอร์ของ Google ฟรีและไม่ต้องติดตั้งแยกต่างหาก

Google Forms สามารถส่งอีเมลอัตโนมัติเมื่อมีคนส่งคำตอบได้หรือไม่?

ไม่ได้โดยตรง Google Forms ไม่มีการตั้งค่าในตัวสำหรับส่งอีเมลถึงเจ้าของฟอร์มทุกครั้งที่มีการส่ง Apps Script สามารถเพิ่มสิ่งนี้ได้โดยรันฟังก์ชันทริกเกอร์เล็ก ๆ ทุกครั้งที่มีคำตอบใหม่เข้ามา

ฉันต้องรู้วิธีเขียนโค้ดเพื่อใช้ Apps Script หรือไม่?

ใช่ ต้องรู้ JavaScript พื้นฐานอย่างน้อย Apps Script เป็นสภาพแวดล้อมการเขียนโค้ดจริง ไม่ใช่เครื่องมือแบบไม่ต้องเขียนโค้ด หากคุณไม่ต้องการเขียนโค้ด ให้มองหาส่วนเสริมแบบไม่ต้องเขียนโค้ดหรือแอปที่สร้างมาเฉพาะทางแทน

ฉันจะเปิดตัวแก้ไข Apps Script สำหรับ Google Form ได้ที่ไหน?

จากฟอร์มของคุณ ไปที่เมนูสามจุดแล้วเลือก Script editor หรือเปิด Google Sheet ที่เชื่อมโยงไว้แล้วไปที่ Extensions > Apps Script

มีขีดจำกัดจำนวนอีเมลที่ Apps Script ส่งได้ต่อวันหรือไม่?

มี Apps Script บังคับใช้โควตาการส่งอีเมลรายวันที่สูงกว่าสำหรับบัญชี Google Workspace มากกว่าบัญชี Gmail ส่วนตัวฟรี ฟอร์มที่มีปริมาณมากซึ่งส่งอีเมลทุกครั้งที่มีการส่งอาจถึงเพดานนั้น ควรตรวจสอบหากอีเมลหยุดส่งกลางวันที่มีงานยุ่ง

คู่มือที่เกี่ยวข้อง