Các dịch vụ tích hợp của Google

Google Apps Script cung cấp hơn 30 dịch vụ tích hợp để tương tác với dữ liệu người dùng, các hệ thống khác của Google và các hệ thống bên ngoài. Các dịch vụ này được cung cấp dưới dạng các đối tượng chung tương tự như đối tượng Math tiêu chuẩn của JavaScript. Ví dụ: giống như Math cung cấp các phương thức như random() và các hằng số như PI, dịch vụ Bảng tính của Apps Script cung cấp các phương thức như openById(id), các lớp (đối tượng con) như Range và các enum như DataValidationCriteria.

Tài liệu tham khảo cho các dịch vụ kiểm soát các sản phẩm của Google Workspace được thu thập trong phần "Dịch vụ của Google Workspace" trong tiêu đề "Tham khảo" ở thanh bên của trang web này. Các dịch vụ tiện ích (cho những việc như tạo giao diện người dùng, phân tích cú pháp XML hoặc ghi dữ liệu nhật ký) được thu thập trong phần "Dịch vụ tập lệnh".

Các tính năng JavaScript hiện đại

Apps Script hỗ trợ 2 môi trường thời gian chạy JavaScript: môi trường thời gian chạy V8 hiện đại và một môi trường cũ hơn do trình thông dịch JavaScript Rhino của Mozilla hỗ trợ.

Thời gian chạy V8 hỗ trợ cú pháp và các tính năng ECMAScript hiện đại. Thời gian chạy Rhino dựa trên tiêu chuẩn JavaScript 1.6 cũ, cộng với một số tính năng của 1.71.8. Chọn thời gian chạy để sử dụng với tập lệnh của bạn, nhưng bạn nên dùng thời gian chạy V8.

Ngoài các dịch vụ nâng cao và dịch vụ tích hợp của Google, mỗi môi trường thời gian chạy đều hỗ trợ các lớp và đối tượng JavaScript có sẵn cho tập lệnh của bạn. Tập lệnh của bạn có thể sử dụng các đối tượng phổ biến như Array, Date, RegExp, và các đối tượng khác, cũng như các đối tượng toàn cục MathObject.

Vì mã Apps Script chạy trên các máy chủ của Google (ngoại trừ các trang dịch vụ HTML), nên các tính năng JavaScript dựa trên trình duyệt như thao tác DOM hoặc API Window không có trong Apps Script.

Tự động hoàn thành

Trình chỉnh sửa tập lệnh cung cấp tính năng "hỗ trợ nội dung", thường được gọi là "tự động hoàn thành", cho biết các đối tượng toàn cục cũng như các phương thức và enum hợp lệ trong ngữ cảnh hiện tại của tập lệnh. Đề xuất tự động hoàn thành sẽ tự động xuất hiện bất cứ khi nào bạn nhập dấu chấm sau một đối tượng, enum hoặc lệnh gọi phương thức chung trả về một lớp Apps Script. Ví dụ:

  • Nếu nhập tên đầy đủ của một đối tượng chung hoặc chọn một đối tượng từ tính năng tự động hoàn thành, sau đó nhập . (dấu chấm), bạn sẽ thấy tất cả các phương thức và enum cho lớp đó.
  • Nếu nhập một vài ký tự, bạn sẽ thấy tất cả các đề xuất hợp lệ bắt đầu bằng những ký tự đó.

Đối tượng chung

Mỗi dịch vụ cung cấp ít nhất một đối tượng toàn cục (cấp cao nhất); ví dụ: dịch vụ Gmail chỉ được truy cập từ đối tượng GmailApp. Một số dịch vụ cung cấp nhiều đối tượng chung; ví dụ: Dịch vụ cơ bản bao gồm 4 đối tượng chung: Browser, Logger, MimeTypeSession.

Phương thức

Các đối tượng chung của hầu hết mọi dịch vụ nâng cao hoặc dịch vụ tích hợp đều có các phương thức trả về dữ liệu hoặc một lớp Apps Script. Tập lệnh thực hiện các lệnh gọi phương thức theo định dạng sau:

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

Ví dụ: một tập lệnh có thể gửi email bằng cách gọi phương thức sendEmail(recipient, subject, body) của dịch vụ Gmail như sau:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

Nếu một phương thức trả về một lớp Apps Script khác, hãy liên kết các lệnh gọi phương thức trên một dòng. (Các loại dữ liệu trả về xuất hiện cả trong tính năng tự động hoàn thành và trong tài liệu tham khảo về phương thức.) Ví dụ: phương thức DocumentApp.create() trả về một Document; do đó, 2 phần mã sau đây tương đương nhau:

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

Lớp con

Mỗi dịch vụ đều có một hoặc nhiều lớp con mà bạn không thể truy cập từ cấp cao nhất dưới dạng một đối tượng chung. Bạn cũng không thể sử dụng từ khoá new để tạo các lớp này, như bạn vẫn làm với các lớp JavaScript tiêu chuẩn như Date. Để truy cập vào một lớp con, bạn phải gọi một phương thức trả về lớp đó. Nếu bạn không chắc chắn về cách truy cập vào một lớp nhất định, hãy truy cập vào trang gốc của tài liệu tham khảo về dịch vụ. Trang này liệt kê các lớp cho dịch vụ và các phương thức trả về các lớp đó.

Giao diện

Một số dịch vụ bao gồm các lớp được gắn nhãn là "giao diện" trong tài liệu tham khảo. Đây là các lớp chung được dùng làm loại dữ liệu trả về cho những phương thức không thể xác định trước loại chính xác. Ví dụ: phương thức Document service (Dịch vụ tài liệu) Body.getChild(childIndex) trả về một đối tượng Element chung. Giao diện Element đại diện cho một số lớp khác, có thể là Paragraph hoặc Table. Các đối tượng giao diện hiếm khi hữu ích; thay vào đó, hãy gọi một phương thức như Element.asParagraph() để truyền đối tượng trở lại một lớp cụ thể.

Enum

Hầu hết các dịch vụ đều bao gồm các enum (các loại được liệt kê) của các giá trị được đặt tên. Ví dụ: dịch vụ Google Drive sử dụng các enum AccessPermission để xác định những người dùng có quyền truy cập vào một tệp hoặc thư mục. Trong hầu hết trường hợp, bạn truy cập vào các enum này từ đối tượng chung, như trong ví dụ sau:

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