讓Line提醒你google 日曆的活動

心安
5 min readFeb 28, 2020

--

會寫這篇是因為跟波波上健身課💪,但預約後很常會忘記時間,想說有沒有辦法讓Google日曆自動到Line群組發通知~答案是有的喔!

最快的方式可以用 IFTTT這個APP做連動,但只能在事件前45分鐘提醒,我希望是前一天通知阿?

這篇會讓你自訂在每天幾點提醒,然後想要在幾天前提醒也是可以的!

有些解釋不是那麼準確,是為了讓不懂程式的人能理解,請噴小力點

這裡會使用到Google Apps Scripts的功能,雖然有程式碼,但別怕我會一步一步帶你走,Let’s GO!!🏃‍♀️🏃‍♀️🏃‍♀️

新增Line Notify到群組或個人聊天室

先搜尋Line Notify並加為好友,再到想要收到通知的群組去邀請Line Notify即完成第一步驟囉!

開始使用Google Apps Script

前往Google 雲端硬碟

點選新增,然後連結更多應用程式

搜尋Google Apps Scripts並安裝

安裝完成後,就可以在新增列表找到Google Apps Scripts

建立Script專案,開始寫程式👻👻👻

點開Google Apps Sciript後就可以開始撰寫,首先點標題去自訂專案名稱

點選檔案->修改專案屬性->修改時區到台北

將一開始myFunction()先刪除

不用管他是甚麼,給自己一塊白畫布去發揮,上面按鈕只要先管儲存就好

撰寫過程只需要用到儲存檔案的按鈕

令兩個變數(variable),一個取Line Notify的權杖,一個取google日曆帳號

別怕,變數就像是一個容器,你可以自由命名容器的名稱,然後內容物可以是數字、文字等等,這裡放的是權杖。權杖想成你分享文章的url,但這裡是讓你的程式碼有權限去取得資料

var 就是你新增一個變數 / lineToken你可以自由命名 / 後面”xxxx”雙引號內容我們等等要改

取日曆資料還有範圍

同樣需要容器,命名更多的變數,讀取日曆資料,設定時間等等

重點:

可以自行設定 1000 * 60 * 60 * 24*1 的 “1” 換成想要幾天前提醒

寫取資料的Function

不用把function想的太難,剛剛上面是變數,一個存資料的容器,而function就像是工廠,工廠把很多容器集合,然後去加工處理,也就是運算。工廠名稱也是可以自己命名的

幾個重點:

1. nowTime.getHours()==22 可以自行設定,就是每天幾點提醒

2. item.setTag 意思就是如果提醒過了就不再提醒,把confirmed設為yes

3. pushContents 裡面內容可以放自己想要的表情符號

一個負責傳送資料給line的工廠,另外兩個是格式的轉換

好了,在來進入取得權杖的部分~

取得Line 權杖

請進入Line官方的Notify登入

登入後,選擇個人頁面並滑到最底,點選發行權杖

這裡的名稱可以自行設定,最後會是你收到通知的標題

複製好權杖,請回我們的Google Apps Script,並貼至第一行的lineToken

取得Google 日曆 ID

進入自己的Google 日曆,點選側邊的日曆

往下滑就可以找到自己的日曆id,複製並同樣貼到剛剛的script中

萬事俱備,只欠觸發

最後,我們還是回到Google Apps Script,並點選上面的時鐘

建立觸發條件,並選擇我們製作好的工廠: getCalendarEvent()

接下來就是設定要多久檢查一次日曆,你可以選擇每天的特定時段,也可以每分鐘去檢查,但我們有在script中自己設定甚麼時候通知了,所以這裡只要設成每分鐘即可

最後就順利完成拉🙌🙌🙌

每天22:00 會提醒你明天幾點運動喔!!

感謝收看,有空再補上新增事件到日曆後,馬上通知的寫法~

--

--

心安

希望帶給世界多一點可愛的工程師🔥ᕦᶘ ᵒ㉨ᵒᶅᕤ🔥