不論是工作上或是個人使用,大部分的人都離不開 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。