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 các đối tượng chung gần giống với đố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), lớp (đối tượng con) như Range và các giá trị 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 đề "Tham khảo" trên thanh bên của trang web này. Các dịch vụ tiện ích (đối với những dịch vụ 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ợ hai môi trường thời gian chạy JavaScript: thời gian chạy V8 hiện đại và thời gian chạy cũ sử dụng trình thông dịch JavaScript Rhino của Mozilla.

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. 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.

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, ngoài các dịch vụ nâng cao và tích hợp sẵn của Google. 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 một 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 thấy các đối tượng chung cũng như 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 lệnh gọi đối tượng chung, enum hoặc phương thức trả về một lớp Apps Script. Ví dụ:

  • Nếu nhập tên đầy đủ của đối tượng toàn cục 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ả phương thức và enum của lớp đó.
  • Nếu nhập một vài ký tự, bạn sẽ thấy tất cả đề xuất hợp lệ bắt đầu bằng các ký tự đó.

Tìm hiểu 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 chung; 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 mọi dịch vụ nâng cao được 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 ở đị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, thì bạn có thể tạo chuỗi 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à tài liệu tham khảo của một phương thức.) Chẳng hạn, 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ấp cao nhất như đối tượng toàn cục có thể. 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 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 về dịch vụ và tìm phương thức trả về lớp bạn muốn.

Xử lý giao diện

Một số dịch vụ có 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 kiểu 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 Tài liệu Body.getChild(childIndex) sẽ 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. Bản thân các đối tượng giao diện hiếm khi 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.

Xử lý enum

Hầu hết các dịch vụ đều bao gồm một vài enum (kiểu liệt kê) của các giá trị được đặt tên. Ví dụ: Dịch vụ Drive sử dụng các giá trị 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 giá trị enum này qua đố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);