Google Apps 脚本提供了 30 多项内置服务,可用于
用户数据、其他 Google 系统和外部系统。这些服务包括
作为全局对象提供
Math
对象。例如,就像 Math
提供 random()
和
PI
、Apps 脚本的
电子表格服务提供如下方法:
openById(id)
、
类(子对象),
Range
以及如下枚举
DataValidationCriteria
。
用于控制 Google Workspace 产品都是在 Google Analytics “Google Workspace 服务”部分下方, “参考”页眉。公用事业服务(用于 例如创建界面、解析 XML 或写入日志数据) 找到“脚本服务”部分。
现代 JavaScript 功能
Apps 脚本支持两种 JavaScript 运行时: V8 运行时,以及由 Mozilla 的 Rhino JavaScript 解释器。
V8 运行时支持新型 ECMAScript 语法和功能。 Rhino 运行时基于较旧的 JavaScript 1.6 标准外,还有一些 1.7 和 1.8. 您可以自由选择运行时 与脚本一起使用,但我们强烈建议您使用 V8 运行时。
每个运行时都支持您的可用 JavaScript 类和对象。
脚本以及内置的
和高级 Google 服务。您的
脚本可以使用
Array
、
Date
、
RegExp
,
等等,
以及
Math
和
Object
。
全局对象。
使用自动补全功能
脚本编辑器提供“内容辅助”功能特征,通常称为 “自动补全”显示全局对象以及方法和枚举 有效的参数。系统会显示自动补全建议 当您在全局对象、枚举或方法后面输入英文句点时, 调用,该函数会返回 Apps 脚本类。例如:
- 如果您输入某个全局对象的全名,或从自动补全功能中选择一个,
然后输入
.
(英文句点),您将看到该类的所有方法和枚举。 - 如果您输入几个字符, 就会看到所有有效的 以这些字符开头的建议。
了解全局对象
每项服务至少提供一个全局(顶级)对象;例如
您只能通过以下应用访问 Gmail 服务:
GmailApp
对象。部分服务
提供多个全局对象;例如,
基础服务包含四个全局对象:
Browser
、
Logger
、
MimeType
和
Session
。
调用方法
几乎所有内置或 高级服务包括 返回数据或 Apps 脚本类。脚本会按以下格式进行方法调用:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
例如,脚本可以通过调用
sendEmail(recipient, subject, body)
方法,如下所示:
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
如果某个方法返回另一个 Apps 脚本类,您可以将方法调用链接在一个类上
行。(返回类型会同时显示在自动补全和方法的引用中)
documentation.)例如,方法为
DocumentApp.create()
会返回一个 Document
;因此,
以下两段代码是等效的:
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.');
访问子类
每项服务都包含一个或多个无法从以下服务访问的子类:
与全局对象相同。您不能将 new
关键字用于
您可以像使用标准 JavaScript 类(如
Date
;
则只能通过调用可返回子类的方法来访问该类。如果您
不确定如何访问某个类,请访问该服务的
参考文档,并查找可返回所需类的方法。
处理接口
少数服务包含标记为“接口”的特殊类
。这些是用作返回值类型的通用类
适用于无法提前确定精确类型的方法;例如
Document service 方法
Body.getChild(childIndex)
会返回一个通用 Element
对象。
Element
是一个表示其他类(可能是
Paragraph
或
Table
。接口对象很少
能够独立发挥作用;而是需要调用
Element.asParagraph()
将对象转换回精确的类。
使用枚举
大多数服务都包含一些具有命名值的枚举(枚举类型)。对于
例如,云端硬盘服务使用
Access
和
Permission
,用于确定哪些用户
有权访问文件或文件夹。在几乎所有情况下,您都能访问
从全局对象中移除例如,调用 方法
Folder.setSharing(accessType, permissionType)
如下所示:
// 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);