Google App Script 入門

不論是工作上或是個人使用,大部分的人都離不開 Google 相關服務,除了搜尋引擎以外,GMail、Google 日曆、Google 文件/試算表/表單等等,都是大家使用頻率非常高的服務。

這些服務通常都是獨立使用,或是限制在 Google 內建整合好的功能 (例如填寫表單會寄出 EMail),但有時候無法滿足你想要的需求,這時候可以利用 Google App Script 來完成跨服務整合,甚至也可以整合外部的服務。

運用場景範例

  • 針對特別重要的 Google 日曆事件,提醒時發送到 Slack,其他則保持 EMail 提醒
  • 每天早上打 api 取得資料後,整理成 Google Sheet 並寄到自己的信箱
  • 當有人編輯 Google Sheet 時,將修改 log 打到 Server 端留存備查

開始你的第一支 Script

第一支程式我們就來使用 Script 來幫我們建立日曆事件吧

首先打開 Google App Script,新增一個專案,然後編輯 Script 如下

function myFunction() {
  let myCalendar = CalendarApp.getDefaultCalendar();
  console.log(myCalendar.getName());
}

按下執行後應該會在執行紀錄看到你的 Email,這是因為預設的日曆名稱其實就是你的 EMail 名稱。

如果是第一次執行,Google App Script 會需要你授權它存取日曆,往後在使用新服務時,都會要求授權,確認沒問題後授權即可。

接著我們再增加一些程式

function myFunction() {
  let myCalendar = CalendarApp.getDefaultCalendar();
  console.log(myCalendar.getName());

  let currentDate = new Date();
  console.log(Utilities.formatDate(currentDate, 'Asia/Taipei', 'MMMM dd, yyyy HH:mm:ss Z'));

  let eventDate = currentDate;
  eventDate.setDate(currentDate.getDate() + 8);
  console.log(Utilities.formatDate(eventDate, 'Asia/Taipei', 'MMMM dd, yyyy HH:mm:ss Z'));

  myCalendar.createAllDayEvent("Hello World! New Event", eventDate);
}

執行後你會看到輸出畫面有二個日期,一個是執行當下的日期,一個是 7 天後的日期,這段主要是 demo 一下關於日期的操作方式,更多細節可以自行查詢 javascript 如何操作日期物件,需要特別注意是關於時區的操作,避免時間跟你想的不同。

接著打開你自己的日曆,你應該可以看到 Script 已經幫你在 7 天後新增了一個日曆事件。

恭喜你完成了第一支 Google App Script。

comments powered by Disqus