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