內建 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);

舉例來說,指令碼可以藉由呼叫 sendEmail(recipient, subject, body)敬上 方法,例如:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

如果方法傳回其他 Apps Script 類別,您可以將方法呼叫鏈結至其中一個類別 互動(傳回類型會同時顯示在自動完成和方法參照中) 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; 您只能透過呼叫傳回該子項的方法來存取子項類別。如果您是 不確定如何存取特定類別,請前往該服務的 ,並尋找可傳回所需類別的方法。

處理介面

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