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.7 和 1.8。 您可以自由選擇執行階段 要搭配指令碼使用,但我們強烈建議使用 V8 執行階段
每個執行階段都支援 JavaScript 類別和物件
除了內建的指令碼外
以及進階 Google 服務。您的
指令碼可使用常用物件 (例如
Array
、
Date
、
RegExp
、
依此類推
以及
Math
和
Object
全域物件
使用自動完成功能
指令碼編輯器提供「內容輔助」通常稱為 「自動完成」、即可顯示全域物件以及方法和列舉 這些都是指令碼目前結構定義有效的字元。顯示自動完成建議 每當您輸入全域物件、列舉或方法之後輸入句點時,就會自動 呼叫,這個呼叫會傳回 Apps Script 類別。例如:
- 如果您輸入全域物件的完整名稱,或是從自動完成功能中選取物件,
接著輸入
.
(半形句號),您會看到該類別的所有方法和列舉。 - 如果您輸入幾個字元,就會看到所有有效 以這些字元開頭
瞭解全域物件
每項服務都提供至少一個全域 (頂層) 物件;例如
Gmail 服務僅可透過以下方式存取:
GmailApp
物件。部分服務
提供多個全域物件舉例來說
基本服務包含四個全域物件:
Browser
、
Logger
、
MimeType
和
Session
。
通話方式
幾乎所有內建或 進階服務包括 會傳回資料或 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
是代表其他類別 (可能是
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);