正好看到有 Line Notify 這方便的工具,若是能用 Line 通知當天的行程或是提前 1 小時前通知,對我常健忘的人來說真的是幫大忙了,所以現在就來 DIY 一下
工具
- Google Calendar 行事曆
- Google Apps Script 工具
- LINE Notify
流程
加 Line Notify 為好友
-
到 雲端硬碟 建立 Google Apps Script 檔案
在檔案內設定左上角的 專案名稱
設定時區為台北 : 在 檔案 > 專案屬性
- 寫好程式碼後,執行時會需要 核對權限 > 選擇使用的帳戶
- 和確認是否使用按 進階 > 前往「 自訂專案名稱 」(不安全)
- 了解允許存取的風險按 允許 就會收到 Line 通知了
Google Apps Script 程式碼
1 | const NotifyToken = 'abcdefg...'; // Line Notify 權杖 |
自已的 google 月曆 ID = google 信箱
他人建立的 google 公開月曆 ID 是 亂數@group.calendar.google.com
Line Notify 權杖
- 到 LINE Notify 右上 登入
- 登入帳號 > 個人頁面
- 滑到最下面點擊 發行存取權杖(開發人員用)的 發行權杖
月曆 ID
1 | const calendar = CalendarApp.getCalendarById(CalendarID); |
CalendarID
是上方的 google 月曆 ID
又或者是抓取自已的行事曆也是可以直接使用、不使用變數
設定時間
用 javascript 通知當天的行程
1 | const Now = new Date(); |
提醒次數
在上方工具列的 現有專案的起動程序 設定在每天固定時間提醒
另外重複提醒的方式還有 recurrence-rule
addDailyExclusion()
排定每天執行的事件addDailyRule()
排定每日重複次數
排定規則可以用串連的方式連接多個函式
1 | recurrence.addDailyRule().times(3).interval(2).addWeeklyExclusion().times(2); |
通知內容
1 | getTitle() // 活動標題 |
calendarData
得到當日的所有行程後依序取得內容
1 | function Notify() { |
Line Notify 傳送訊息
1 | UrlFetchApp.fetch("https://notify-api.line.me/api/notify", { |
要傳送通知的屬性都是使用物件包著,只需要 3 個屬性和值再加上網址就可以傳出通知了
完整程式碼
1 | const NotifyToken = 'abcdefg...'; // Line Notify 權杖 |