บริการในตัวของ 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 ที่ทันสมัยและรันไทม์เดิมที่ทำงานด้วยตัวแปลคำสั่ง Rhino JavaScript ของ Mozilla

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

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

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

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

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

การทำความเข้าใจวัตถุส่วนกลาง

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

วิธีการโทร

ออบเจ็กต์ส่วนกลางของบริการขั้นสูงที่มีมาในตัวเกือบทั้งหมดรวมวิธีการที่ส่งคืนข้อมูลหรือคลาส 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 บางรายการ (ประเภทที่แจกแจง) ของค่าที่ตั้งชื่อแล้ว เช่น บริการไดรฟ์จะใช้ 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);