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);