บริการในตัวของ Google

Google Apps Script มีบริการในตัวกว่า 30 บริการสำหรับการโต้ตอบกับข้อมูลผู้ใช้ ระบบอื่นๆ ของ Google และระบบภายนอก บริการเหล่านี้มีการจัดเตรียมเป็นออบเจ็กต์ส่วนกลางคล้ายกับออบเจ็กต์ Math มาตรฐานของ JavaScript ตัวอย่างเช่น Math ที่มีเมธอดอย่าง random() และค่าคงที่อย่าง PI บริการสเปรดชีตของ Apps Script ก็มีเมธอดอย่างเช่น openById(id) คลาส (ออบเจ็กต์ย่อย) เช่น Range และ enum เช่น DataValidationCriteria

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

ฟีเจอร์ JavaScript สมัยใหม่

Apps Script รองรับรันไทม์ของ JavaScript 2 แบบ ได้แก่ รันไทม์ V8 แบบสมัยใหม่และรันไทม์ที่เก่ากว่าซึ่งขับเคลื่อนโดยตัวแปล JavaScript Rhino ของ Mozilla

รันไทม์ V8 รองรับไวยากรณ์และฟีเจอร์ ECMAScript ที่ทันสมัย รันไทม์ของ Rhino จะอิงจากมาตรฐาน JavaScript 1.6 เวอร์ชันเก่า และคุณลักษณะบางส่วนจาก 1.7 และ 1.8 คุณเลือกรันไทม์ได้อย่างอิสระเพื่อใช้กับสคริปต์ แต่เราขอแนะนำอย่างยิ่งให้ใช้รันไทม์ V8

รันไทม์แต่ละรายการรองรับคลาส JavaScript และออบเจ็กต์ที่พร้อมใช้งานสำหรับสคริปต์ของคุณ นอกเหนือจากบริการในตัวและบริการของ Google ขั้นสูง สคริปต์ของคุณสามารถใช้ออบเจ็กต์ทั่วไป เช่น Array, Date, RegExp ฯลฯ รวมถึง Math และ Object ออบเจ็กต์ส่วนกลาง

การใช้การเติมข้อความอัตโนมัติ

เครื่องมือแก้ไขสคริปต์มีฟีเจอร์ "ความช่วยเหลือด้านเนื้อหา" หรือที่รู้จักกันโดยทั่วไปว่า "เติมข้อความอัตโนมัติ" ซึ่งจะแสดงออบเจ็กต์ส่วนกลาง ตลอดจนเมธอดและ Enum ที่ถูกต้องในบริบทปัจจุบันของสคริปต์ คำแนะนำที่เติมข้อความอัตโนมัติจะปรากฏขึ้นโดยอัตโนมัติเมื่อคุณพิมพ์จุดหลังออบเจ็กต์ส่วนกลาง, enum หรือการเรียกใช้เมธอดที่ส่งกลับคลาส Apps Script เช่น

  • หากคุณพิมพ์ชื่อเต็มของออบเจ็กต์ส่วนกลางหรือเลือกชื่อจากการเติมข้อความอัตโนมัติ จากนั้นพิมพ์ . (จุด) คุณจะเห็นเมธอดและ Enum ทั้งหมดสำหรับคลาสนั้น
  • หากคุณพิมพ์อักขระ 2-3 ตัว คุณจะเห็นคำแนะนำที่ถูกต้องทั้งหมดที่ขึ้นต้นด้วยอักขระเหล่านั้น

การทำความเข้าใจออบเจ็กต์ส่วนกลาง

แต่ละบริการมีออบเจ็กต์ส่วนกลาง (ระดับบนสุด) อย่างน้อย 1 รายการ เช่น บริการ Gmail จะเข้าถึงได้จากออบเจ็กต์ GmailApp เท่านั้น บริการบางอย่างมอบออบเจ็กต์ส่วนกลางหลายรายการ เช่น บริการพื้นฐานประกอบด้วยออบเจ็กต์ส่วนกลาง 4 รายการ ได้แก่ Browser, Logger, MimeType และ Session

วิธีการโทร

ออบเจ็กต์ส่วนกลางของ{0}บริการขั้นสูงหรือบริการขั้นสูงเกือบทั้งหมดจะมีเมธอดที่ส่งกลับข้อมูลหรือคลาส Apps Script สคริปต์จะเรียกเมธอดในรูปแบบนี้

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

เช่น สคริปต์จะส่งอีเมลได้โดยเรียกใช้เมธอด sendEmail(recipient, subject, body) ของบริการ Gmail ดังนี้

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

หากเมธอดแสดงผลคลาส Apps Script อื่น คุณสามารถเชนการเรียกใช้เมธอดในบรรทัดเดียวได้ (ประเภทการแสดงผลจะแสดงทั้งในการเติมข้อความอัตโนมัติและในเอกสารอ้างอิงของเมธอด) เช่น เมธอด DocumentApp.create() จะแสดงผล Document ดังนั้นโค้ด 2 ส่วนต่อไปนี้จึงเทียบเท่ากัน

var doc = DocumentApp.create('New document');
var body = doc.getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getBody().appendParagraph('New paragraph.');

การเข้าถึงชั้นเรียนย่อย

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

การจัดการกับอินเทอร์เฟซ

บริการส่วนหนึ่งมีคลาสพิเศษที่มีป้ายกำกับว่า "อินเทอร์เฟซ" ในเอกสารอ้างอิง คลาสเหล่านี้เป็นคลาสทั่วไปที่ใช้เป็นประเภทการแสดงผลสำหรับเมธอดที่ระบุประเภทที่แน่นอนล่วงหน้าไม่ได้ เช่น เมธอดบริการเอกสาร Body.getChild(childIndex) จะแสดงออบเจ็กต์ Element ทั่วไป Element เป็นอินเทอร์เฟซที่แสดงถึงคลาสอื่นๆ ซึ่งอาจเป็น Paragraph หรือ Table ออบเจ็กต์อินเทอร์เฟซไม่ค่อยมีประโยชน์โดยลำพัง คุณมักจะเรียกใช้เมธอดอย่างเช่น Element.asParagraph() เพื่อแคสต์ออบเจ็กต์กลับไปยังคลาสที่แม่นยำ

การทำงานกับ enum

บริการส่วนใหญ่จะมี enum (ประเภทที่มีการแจกแจง) ของค่าที่มีชื่อ 2-3 รายการ เช่น บริการไดรฟ์ใช้ Enum Access และ Permission เพื่อระบุว่าผู้ใช้รายใด มีสิทธิ์เข้าถึงไฟล์หรือโฟลเดอร์ ในเกือบทุกกรณี คุณจะเข้าถึง Enum เหล่านี้จากออบเจ็กต์ส่วนกลาง เช่น การเรียกเมธอด Folder.setSharing(accessType, permissionType) จะมีลักษณะดังนี้

// Creates a folder that anyone on the Internet can read from and write to. (Domain administrators can
// prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);