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 sẵn để 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 đối tượng toàn cục 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à enum như DataValidationCriteria.

Tài liệu tham khảo cho các dịch vụ kiểm soát sản phẩmGoogle Workspace được thu thập trong phần "Dịch vụGoogle Workspace " trong tiêu đề "Tài liệu tham khảo" ở thanh bên của trang web này. Các dịch vụ tiện ích (dành cho các thao tá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ợ hai 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ôi trường thời gian chạy cũ do trình thông dịch JavaScript Rhino của Mozilla cung cấp.

Thời gian chạy V8 hỗ trợ các tính năng và cú pháp ECMAScript hiện đại. Môi trường 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 từ 1.71.8. Bạn có thể tự do chọn thời gian chạy để sử dụng với tập lệnh của mình, nhưng bạn nên sử dụng thời gian chạy V8.

Ngoài các dịch vụ nâng cao và tích hợp sẵn của Google, mỗi 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.v., cũng như các đối tượng toàn cục MathObject.

Sử dụng tính năng 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 thấy 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. Các đề 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 lệnh gọi đối tượng, enum hoặc phương thức toàn cục trả về một lớp Apps Script. Ví dụ:

  • Nếu nhập tên đầy đủ của một đối tượng toàn cục hoặc chọn một đối tượng trong 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ả 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 các ký tự đó.

Tìm hiểu về đối tượng toàn cục

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ụ: chỉ truy cập được dịch vụ Gmail từ đối tượng GmailApp. Một số dịch vụ cung cấp nhiều đối tượng toàn cục; ví dụ: Dịch vụ cơ sở bao gồm 4 đối tượng toàn cục: Browser, Logger, MimeTypeSession.

Gọi phương thức

Các đối tượng toàn cục của hầu hết các dịch vụ nâng cao hoặc dịch vụ tích hợp sẵn đều bao gồm 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 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, bạn có thể 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 của một phương thức.) Ví dụ: phương thức DocumentApp.create() trả về Document; do đó, hai 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.');

Truy cập vào lớp con

Mỗi dịch vụ bao gồm một hoặc nhiều lớp con không thể truy cập được từ cấp cao nhất như đối tượng toàn cục. Bạn không thể sử dụng từ khoá new để tạo các lớp này như bạn có thể làm với các lớp JavaScript chuẩn như Date; bạn chỉ có thể truy cập vào một lớp con bằng cách gọi một phương thức trả về lớp đó. Nếu bạn không chắc chắn 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 của dịch vụ và tìm một phương thức trả về lớp bạn muốn.

Xử lý giao diện

Một số dịch vụ bao gồm các lớp đặc biệt được gắn nhãn "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 các phương thức không thể xác định trước loại chính xác; ví dụ: phương thức Dịch vụ tài liệu Body.getChild(childIndex) trả về một đối tượng Element chung. Element là một giao diện đạ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 tự hữu ích; thay vào đó, bạn thường muốn gọi một phương thức như Element.asParagraph() để truyền đối tượng trở lại một lớp chính xác.

Làm việc với enum

Hầu hết các dịch vụ đều bao gồm một số enum (loại được liệt kê) của các giá trị được đặt tên. Ví dụ: Dịch vụ 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 các trường hợp, bạn truy cập vào các enum này từ đối tượng toàn cục. Ví dụ: lệnh gọi đến phương thức Folder.setSharing(accessType, permissionType) có dạng như 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);