บริการในตัวของ Google

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

บริการส่วนใหญ่มี 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);