Google Apps Script (GAS) 初學者指南:入門與應用(附程式碼範例)

Google Apps Script(GAS)是由Google提供的應用程式開發平台。使用GAS,可以利用如HTML和JavaScript等常見的Web語言,來自動化Gmail和Google試算表等Google服務。

本文將簡單介紹GAS是什麼,以及它有什麼應用,並會提供在Google試算表上自動化處理的範例程式碼。

GAS的主要特點包括:

  1. 只要有Gmail帳號,誰都可以免費使用。
  2. 開發環境無需設置,很快就能開始。
  3. 使用JavaScript語法,易於學習。
  4. 具有記錄巨集功能,能進行無程式碼開發。

GAS的應用例子

  • 在Google服務上自動化處理
  • 與外部服務連接
  • 開發Web應用程式

使用GAS的注意事項

  1. 不能操作本地文件,所有文件必須保存在Google雲端硬碟上。
  2. 執行時間有限制,每次執行最多6分鐘,自定義函數執行時間最多30秒。

GAS的開發方式

  • 容器綁定型:開發與特定Google服務(如試算表)相關的程式。
  • 獨立型:開發與Google服務無直接關聯的獨立程式。

開始使用GAS

容器綁定型

  1. 開啟適用的Google服務,如試算表,選擇擴充功能中的「App Script」。
  2. 確認程式碼編輯畫面,並在指定區域編寫程式碼。
  3. 更改程式名稱並保存。
  4. 執行程式碼,確認執行結果。

獨立型

  1. 開啟Google雲端硬碟,選擇「新建」中的「Google App Script」。
  2. 按容器綁定型方法進行編寫和執行程式。

GAS範例程式碼:每日任務自動通知

此範例將從Google試算表的任務列表自動通知至指定聊天工具 Chatwork,根據每日或每月的頻率顯示任務。

  1. 在試算表中創建任務表。
  2. 開啟App Script,編寫以下程式碼:
function main() {
  const token = 'your_token';
  const roomId = 'your_room_id';
  const accountId = 'your_account_id';
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sh = ss.getActiveSheet();
  const values = sh.getDataRange().getValues();
  values.shift();
  for (const value of values) {  // 處理每行資料
    const taskName = value[0];
    const frequency = value[1];
    const deadline = value[3];
    if (frequency === '每日') {
      addTask(token, roomId, accountId, taskName, deadline);
    } else if (frequency === '每月') {
      let date = new Date(deadline.getTime());
      date.setDate(deadline.getDate() - 3);
      date = Utilities.formatDate(date, 'JST', 'yyyy/MM/dd');
      const today = Utilities.formatDate(new Date(), 'JST', 'yyyy/MM/dd');
      if (today === date) {
        addTask(token, roomId, accountId, taskName, deadline);
      }
    }
  }
}
function addTask(token, roomId, accountId, taskName, deadline) {
  const limit = (deadline.getTime() / 1000).toFixed();
  const params = {
    headers: { 'X-ChatWorkToken': token },
    method: 'post',
    payload: {
      body: taskName,
      limit: limit,
      to_ids: accountId
    }
  };
  const url = 'https://api.chatwork.com/v2/rooms/' + roomId + '/tasks';
  const result = UrlFetchApp.fetch(url, params);
  console.log('Result: ' + result.getResponseCode() + ' ' + result.getContentText());
}
  1. 編輯程式碼中的API憑證和相關ID,保存並執行。

設定定時觸發器

設定程式的執行頻率來自動化通知過程。

總之,GAS是一個功能強大的工具,不僅易於上手,也能與多種Google服務和外部API連接,自動化日常工作。希望本文能幫助你更好地了解GAS,並開始使用它來提升工作效率。