Google Apps Script มีบริการในตัวมากกว่า 30 รายการสำหรับการโต้ตอบ
กับข้อมูลผู้ใช้ ระบบอื่นๆ ของ Google และระบบภายนอก บริการเหล่านี้มีให้ใช้งานเป็นออบเจ็กต์ส่วนกลางคล้ายกับออบเจ็กต์มาตรฐานของ JavaScript
Math
ตัวอย่างเช่น เช่นเดียวกับที่ Math มีเมธอดอย่าง random() และค่าคงที่
อย่าง PI บริการ Spreadsheet
ของ 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
เนื่องจากโค้ด Apps Script ทำงานบนเซิร์ฟเวอร์ของ Google (ยกเว้นหน้า HTML Service)
ฟีเจอร์ JavaScript ที่อิงตามเบราว์เซอร์ เช่น การจัดการ DOM หรือ API Window จึงไม่พร้อมใช้งานใน Apps Script
เติมข้อความอัตโนมัติ
เครื่องมือแก้ไขสคริปต์มีฟีเจอร์ "ความช่วยเหลือด้านเนื้อหา" ซึ่งเรียกกันโดยทั่วไปว่า "การเติมข้อความอัตโนมัติ" ซึ่งจะแสดงออบเจ็กต์ส่วนกลาง รวมถึงเมธอดและ Enum ที่ใช้ได้ในบริบทปัจจุบันของสคริปต์ คำแนะนำในการเติมข้อความอัตโนมัติจะปรากฏขึ้นโดยอัตโนมัติเมื่อใดก็ตามที่คุณพิมพ์จุดหลังออบเจ็กต์ส่วนกลาง, enum หรือการเรียกใช้เมธอดที่ส่งคืนคลาส Apps Script เช่น
- หากคุณพิมพ์ชื่อเต็มของออบเจ็กต์ส่วนกลางหรือเลือกออบเจ็กต์จากฟีเจอร์เติมข้อความอัตโนมัติ แล้วพิมพ์
.(จุด) คุณจะเห็นเมธอดและ Enum ทั้งหมดสำหรับคลาสนั้น - หากพิมพ์อักขระ 2-3 ตัว คุณจะเห็นคำแนะนำที่ใช้ได้ทั้งหมดซึ่งขึ้นต้นด้วยอักขระเหล่านั้น
ออบเจ็กต์ส่วนกลาง
แต่ละบริการจะมีออบเจ็กต์ส่วนกลาง (ระดับบนสุด) อย่างน้อย 1 รายการ เช่น บริการ Gmail จะเข้าถึงได้จากออบเจ็กต์ GmailApp เท่านั้น บางบริการ
มีออบเจ็กต์ส่วนกลางหลายรายการ เช่น Base service มีออบเจ็กต์ส่วนกลาง 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
หากต้องการเข้าถึงคลาสย่อย คุณต้องเรียกใช้เมธอดที่ส่งคืนคลาสดังกล่าว หากไม่แน่ใจวิธีเข้าถึงคลาสหนึ่งๆ ให้ไปที่หน้าหลักของเอกสารอ้างอิงของบริการ ซึ่งจะแสดงรายการคลาสสำหรับบริการและเมธอดที่ส่งคืนคลาสเหล่านั้น
อินเทอร์เฟซ
บางบริการมีคลาสที่ติดป้ายกำกับว่า "อินเทอร์เฟซ" ในเอกสารประกอบอ้างอิง
คลาสทั่วไปเหล่านี้ใช้เป็นประเภทการคืนค่าสำหรับเมธอดที่
ไม่สามารถระบุประเภทที่แน่นอนล่วงหน้าได้ เช่น เมธอด
บริการเอกสาร
Body.getChild(childIndex)
จะแสดงผลออบเจ็กต์ Element ทั่วไป
อินเทอร์เฟซ Element แสดงคลาสอื่นๆ ซึ่งอาจเป็น
Paragraph หรือ
Table ออบเจ็กต์อินเทอร์เฟซมักไม่ค่อยมีประโยชน์ในตัวของมันเอง แต่ให้เรียกเมธอด เช่น
Element.asParagraph()
เพื่อแคสต์ออบเจ็กต์กลับไปเป็นคลาสที่เฉพาะเจาะจง
Enum
บริการส่วนใหญ่มี Enums (ประเภทที่แจงนับ) ของค่าที่มีชื่อ เช่น บริการ Google ไดรฟ์ใช้
การแจงนับ Access และ
Permission เพื่อระบุว่าผู้ใช้รายใด
มีสิทธิ์เข้าถึงไฟล์หรือโฟลเดอร์ ในกรณีส่วนใหญ่ คุณจะเข้าถึง Enum เหล่านี้ได้จากออบเจ็กต์ส่วนกลาง ดังตัวอย่างต่อไปนี้
// 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);