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 giống như đối tượng Math 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 cũng 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 mục "Google Workspace Dịch vụ" trong tiêu đề "Tài liệu tham khảo" trên thanh bên của trang web này. Các dịch vụ tiện ích (cho những hoạt động 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 mục "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 thời gian chạy cũ hơn do công cụ 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. 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 chung 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", tính năng này cho biết các đối tượng chung 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 một dấu chấm sau một đối tượng chung, enum hoặc lệnh gọi phương thứ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 chung hoặc chọn một đối tượng trong tính năng tự động hoàn thành, sau đó nhập . (một 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 các ký tự đó.

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

Mỗi dịch vụ cung cấp ít nhất một đối tượng chung (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 toàn cục; ví dụ: Dịch vụ cơ sở bao gồm 4 đối tượng chung: Browser, Logger, MimeTypeSession.

Phương thức gọi

Các đối tượng chung của hầu hết các dịch vụ tích hợp sẵn hoặc dịch vụ nâng cao đề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 lệnh gọi phương thức theo định dạng sau:

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

Ví dụ: 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ề một Document; do đó, 2 phần mã sau đây là tương đương:

var doc = DocumentApp.create('New document');
var body = doc.getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getBody().appendParagraph('New paragraph.');

Truy cập vào các 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ư với các lớp JavaScript tiêu 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 về cách truy cập vào một lớp nhất định, hãy truy cập trang gốc để xem 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à 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 hữu ích khi đứng riêng; 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.

Cách dùng enum

Hầu hết các dịch vụ đều có một vài giá trị được đặt tên trong enum (loại liệt kê). 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 mọi 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) sẽ 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);