GAS 基礎語法與開發 (GAS Basics)

Google Apps Script (GAS) 是基於 JavaScript 的執行環境。在開始寫複雜的自動化腳本前,我們需要先了解 GAS 的開發環境特色以及它與傳統 JavaScript 不同的地方。

JavaScript 版本

目前的 GAS 執行環境使用的是 V8 引擎,這意味著你可以使用絕大部分的現代 JavaScript (ES6+) 語法,例如:

  • letconst 宣告變數。
  • 箭頭函數 (Arrow Functions)。
  • 解構賦值 (Destructuring assignment)。
  • 模板字串 (Template Literals)。
較舊的 GAS 專案可能會使用 Rhino 引擎,僅支援到 ES5,但現在新建立的專案預設都會使用 V8。

特有的全域物件 (Services)

這是在 GAS 中最核心的概念。Google 將各項服務封裝成全域物件供開發者直接呼叫,不需額外引入函式庫:

  • SpreadsheetApp:用來操作 Google 試算表 (Google Sheets)。
  • DriveApp:用來操作雲端硬碟 (Google Drive)。
  • GmailApp:用來讀取、搜尋或發送郵件。
  • FormApp:用來處理 Google 表單。
  • UrlFetchApp:用來呼叫外部 API (類似瀏覽器的 fetchcurl)。

基礎範例:變數與日誌記錄

在 GAS 編輯器中,所有的函數定義都是可以被獨立執行的。

/**
 * 演示基本的數值運算與日誌輸出
 */
function basicSyntaxDemo() {
  const firstName = 'Mike';
  const lastName = 'Lee';
  
  // 使用模板字串拼接文字
  const fullName = `${firstName} ${lastName}`;
  
  // 記錄到 GAS 內建的日誌系統
  console.log('當前使用者:', fullName);
  
  const score = 85;
  if (score >= 60) {
    Logger.log('成績及格');
  } else {
    Logger.log('成績不及格');
  }
}

console.log vs Logger.log

在 GAS V8 環境中,你可以使用兩種方式記錄日誌:

  1. Logger.log():GAS 傳統的記錄方式。
  2. console.log():現代化的記錄方式,會與 Google Cloud 日誌整合,查看起來更直覺。

權限與授權 (Authorization)

當你的程式碼試圖存取你的個人資料(例如讀取你的郵件或雲端硬碟檔案)時,GAS 在第一次執行時會跳出「審核權限」的對話框。

  1. 點擊「審核權限」。
  2. 選擇你的 Google 帳號。
  3. 如果出現「Google 尚未驗證此小應用程式」,點擊「進階」並選擇「前往『專案名稱』(不安全)」。
  4. 點擊「允許」。

這套授權機制確保了只有經過你同意的腳本才能代表你執行動作。