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 เช่น
- หากคุณพิมพ์ชื่อเต็มของออบเจ็กต์ส่วนกลางหรือเลือกจากฟีเจอร์เติมข้อความอัตโนมัติ
แล้วพิมพ์
.
(จุด) คุณจะเห็นเมธอดและ 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.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);