บริการในตัวของ 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 ที่ถูกต้องในบริบทปัจจุบันของสคริปต์ คำแนะนำในการเติมข้อความอัตโนมัติจะปรากฏขึ้นโดยอัตโนมัติทุกครั้งที่คุณพิมพ์เครื่องหมายจุดต่อจากออบเจ็กต์ส่วนกลาง อาร์เรย์แบบจำกัด หรือการเรียกใช้เมธอดที่แสดงผลคลาส Apps Script เช่น

  • หากคุณพิมพ์ชื่อเต็มของออบเจ็กต์ส่วนกลางหรือเลือกจากฟีเจอร์เติมข้อความอัตโนมัติ แล้วพิมพ์ . (เครื่องหมายจุด) คุณจะเห็นเมธอดและลิสต์ทั้งหมดของคลาสนั้น
  • หากพิมพ์อักขระ 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.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');

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

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

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

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

บริการบางรายการมีคลาสพิเศษที่ติดป้ายกำกับว่า "อินเทอร์เฟซ" ในเอกสารอ้างอิง คลาสเหล่านี้เป็นคลาสทั่วไปที่ใช้เป็นประเภทผลลัพธ์สำหรับเมธอดที่ไม่สามารถระบุประเภทที่แน่นอนล่วงหน้าได้ เช่น เมธอด Document service 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);