内置 Google 服务

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.71.8. 您可以自由选择运行时 与脚本一起使用,但我们强烈建议您使用 V8 运行时。

每个运行时都支持您的可用 JavaScript 类和对象。 脚本以及内置的 和高级 Google 服务。您的 脚本可以使用 Array, Date, RegExp, 等等, 以及 MathObject 全局对象。

使用自动补全功能

脚本编辑器提供“内容辅助”功能特征,通常称为 “自动补全”显示全局对象以及方法和枚举 有效的参数。系统会显示自动补全建议 当您在全局对象、枚举或方法后面输入英文句点时, 调用,该函数会返回 Apps 脚本类。例如:

  • 如果您输入某个全局对象的全名,或从自动补全功能中选择一个, 然后输入 .(英文句点),您将看到该类的所有方法和枚举。
  • 如果您输入几个字符, 就会看到所有有效的 以这些字符开头的建议。

了解全局对象

每项服务至少提供一个全局(顶级)对象;例如 您只能通过以下应用访问 Gmail 服务GmailApp 对象。部分服务 提供多个全局对象;例如, 基础服务包含四个全局对象: Browser, Logger, MimeTypeSession

调用方法

几乎所有内置或 高级服务包括 返回数据或 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.getBody();
body.appendParagraph('New paragraph.');

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

访问子类

每项服务都包含一个或多个无法从以下服务访问的子类: 与全局对象相同您不能将 new 关键字用于 您可以像使用标准 JavaScript 类(如 Date; 则只能通过调用可返回子类的方法来访问该类。如果您 不确定如何访问某个类,请访问该服务的 参考文档,并查找可返回所需类的方法。

处理接口

少数服务包含标记为“接口”的特殊类 。这些是用作返回值类型的通用类 适用于无法提前确定精确类型的方法;例如 Document service 方法 Body.getChild(childIndex) 会返回一个通用 Element 对象。 Element 是一个表示其他类(可能是 ParagraphTable。接口对象很少 能够独立发挥作用;而是需要调用 Element.asParagraph() 将对象转换回精确的类。

使用枚举

大多数服务都包含一些具有命名值的枚举(枚举类型)。对于 例如,云端硬盘服务使用 AccessPermission,用于确定哪些用户 有权访问文件或文件夹。在几乎所有情况下,您都能访问 从全局对象中移除例如,调用 方法 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);