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 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à các enum như
DataValidationCriteria.
Tài liệu tham khảo cho các dịch vụ kiểm soát 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 (dành 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 thời gian chạy JavaScript: thời gian chạy hiện đại V8 và một thời gian chạy cũ hơn do trình thông dịch JavaScript Rhino của Mozilla cung cấp.
ECMAScript Thời gian chạy Rhino dựa trên tiêu chuẩn JavaScript 1.6 cũ hơn , cùng với một số tính năng từ và . Hãy 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.
Mỗi thời gian chạy hỗ trợ các lớp và đối tượng JavaScript mà tập lệnh của bạn có thể sử dụng 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 toàn cụcMath vàObject.
Vì mã Apps Script chạy trên 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". Tính năng này hiển thị 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 đối tượng toàn cục, enum hoặc lệnh gọi phương thức trả về một lớp Apps Script. Ví dụ:
- Nếu bạn 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 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 bạn 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 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ụ: bạn chỉ có thể truy cập vào 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,
MimeType, và
Session.
Phương thức
Các đối tượng toàn cục của hầu hết mọi dịch vụ tích hợp sẵn hoặc dịch vụ nâng cao đề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 các lệnh gọi phương thức theo định dạng này:
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 xâu 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ề được hiển thị 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.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ụ bao gồm 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 toàn cục. Bạn cũng không thể sử dụng từ khoá new để
tạo các lớp này, như khi bạn sử dụng 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 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
của 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 khi đứng một mình; 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 (kiểu 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 Access và
Permission để 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 toàn cục, như minh hoạ 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);