內建 Google 服務

Google Apps Script 提供 30 多項內建服務,可與使用者資料、其他 Google 系統和外部系統互動。這些服務會以全域物件的形式提供,類似於 JavaScript 的標準 Math 物件。舉例來說,Math 提供 random() 和 常數,例如 PI、Apps Script 的 試算表服務提供許多方法,例如 openById(id)、 類別 (子項物件) 和 Range,以及類似列舉 DataValidationCriteria

控制Google Workspace 產品的服務參考文件收錄於本網站側欄「參考資料」標題下方的「Google Workspace 服務」部分。公用事業服務 例如建立使用者介面、剖析 XML 或寫入記錄資料等 「指令碼服務」中專區。

現代 JavaScript 功能

Apps Script 支援兩種 JavaScript 執行階段:新版 V8 執行階段,以及採用 Mozilla 的舊版執行階段 Rhino JavaScript 解譯器

V8 執行階段支援新式 ECMAScript 語法和功能。Rhino 執行階段是以較舊的 JavaScript 1.6 標準為基礎,並加上 1.71.8 的部分功能。您可以自由選擇要與指令碼搭配使用的執行階段,但強烈建議使用 V8 執行階段。

每個執行階段都支援 JavaScript 類別和物件 除了內建的指令碼外 以及進階 Google 服務。您的 指令碼可使用常用物件 (例如 ArrayDateRegExp依此類推 以及 MathObject 全域物件

使用自動完成功能

指令碼編輯器提供「內容輔助」通常稱為 「自動完成」、即可顯示全域物件以及方法和列舉 這些都是指令碼目前結構定義有效的字元。顯示自動完成建議 每當您輸入全域物件、列舉或方法之後輸入句點時,就會自動 呼叫,這個呼叫會傳回 Apps Script 類別。例如:

  • 如果您輸入全域物件的完整名稱,或從自動完成功能中選取一個全域物件,然後輸入 . (一個句點),您就會看到該類別的所有方法和列舉。
  • 只要輸入幾個字元,系統就會顯示所有以這些字元開頭的有效建議。

瞭解全域物件

每項服務都提供至少一個全域 (頂層) 物件;例如 Gmail 服務僅可透過以下方式存取: GmailApp 物件。部分服務 提供多個全域物件舉例來說 基本服務包含四個全域物件: BrowserLoggerMimeTypeSession

通話方式

幾乎所有內建或進階服務的全域物件都包含可傳回資料或 Apps Script 類別的方法。指令碼會以以下格式進行方法呼叫:

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

舉例來說,指令碼可以透過呼叫 Gmail 服務的 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 關鍵字建構這些類別,但可以使用 Date 等標準 JavaScript 類別;您只能透過呼叫會傳回子類別的方法存取子類別。如果不確定如何存取特定類別,請前往服務參考說明文件的根目錄頁面,尋找可傳回所需類別的方法。

處理介面

部分服務包括標示為「介面」的特殊類別 請參閱說明文件這些是做為傳回類型的一般類別 找出無法事先判斷精確型別的方法;例如 文件服務方法 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);