LINE Notifyで自分のカレンダーから自動でリマインダーを流す
概要
毎週日曜日の夜に、Google Calendarの予定を自動で読み込み、自分のLINEにポストする。
やることは三つ。
1. LINE Notifyにアクセス、マイトークンの発行
2. Google Calendarでマイカレンダーを設定
3. Google Apps Scriptでリマインダーを実装
1. LINE Notifyを設定
LINE Notifyとは
LINEが提供している無料のサービス。様々なアプリやWebサービスとAPI連携し、受け取った通知をLINEのグループに送信することができる。
LINE Notifyの登録
LINEでメンバーが自分だけのグループを適当に作成
グループ名を「リマインダー」とか、分かりやすいようにしておくといいかも。
以下にアクセスし、自分のLINEに登録しているメールアドレスとパスワードでログイン
LINENotify-
(1) トークン名は適当に「来週の予定」などに設定。
このトークン名は、最終的にリマインダーをメッセージとして送信する際に、メッセージの頭につく。例えば「来週の予定」というトークン名にすると以下のようにLINEにメッセージがくる。
2. Google Calendarでマイカレンダーを設定
マイカレンダーとは
言うまでもないが、Google Calendarにある機能の一つ。自分のカレンダーに登録する予定をグループ化して管理できる。"仕事"とか"プライベート"みたいな感じで作っておくと便利なやつ。
今回はリマインダー用のグループとして「いろんな予定」を作成する。
マイカレンダーの登録
-
カレンダーIDの取得
- 作成した「いろんな予定」のところにカーソルを合わせると出てくる、縦の三つコロンから「設定と共有」を開く。
- バーっと下に進むと、「カレンダーの統合」とあるので、そこに書いてある「カレンダーID」をメモする。
- マイカレンダーの設定完了
3. Google Apps Scriptで実装
Google Apps Scriptとは
Googleが提供しているサービスの一つ。サーバーサイドのスクリプト環境。要するに、Googleのサーバー上でプログラムを実装し、そこで走らせることができる。GASとか言われてる。下記リンクからChromeに追加できる。
Google Apps Script
Google Apps Scriptで実装
- 「新しいプロジェクト」から、新規プロジェクトを作成
- カレンダーを読み込み、メッセージとして通知するためのプログラムを実装
lineTokenID
の所に先ほどメモしたLINE NotifyのトークンIDを、googleCalendarID
の所にはマイカレンダーのIDを入れる。reminder.gsvar lineTokenID = 'memositeoitalinetokenid'; var googleCalendarID = '[email protected]'; function sendToLine(text) { var text = 'test' var token = lineTokenID; var options = { 'method' : 'post', 'payload' : 'message=' + text, 'headers' : {'Authorization' : 'Bearer '+ token} }; UrlFetchApp.fetch('https://notify-api.line.me/api/notify', options); }
- 試しに実行
蜘蛛のアイコンの隣の実行ボタンから、実行できる。
- 無事通知されることを確認
- 日曜日に次の一週間の予定を読み込み通知するプログラムを実装
関数notify()
のところで、先一週間の予定を読み込み、通知を投げます。reminder.gsvar lineTokenID = 'memositeoitalinetokenid'; var googleCalendarID = '[email protected]'; var weekday = ['月', '火', '水', '木', '金', '土', '日']; function toTime(str) { return Utilities.formatDate(str, 'JST', 'HH:mm'); } function toDay(str) { return Utilities.formatDate(str, 'JST', 'd'); } function sendToLine(text) { var token = lineTokenID; var options = { 'method' : 'post', 'payload' : 'message=' + text, 'headers' : {'Authorization' : 'Bearer '+ token} }; UrlFetchApp.fetch('https://notify-api.line.me/api/notify', options); } function notify() { var text = '\n'; var sunday = new Date(); var calendar = CalendarApp.getCalendarById(googleCalendarID); // 先一週間の予定を読み込み for (var d = 0; d < weekday.length; d++) { var day = new Date(); day.setDate(sunday.getDate() + (d+1)); var events = calendar.getEventsForDay(day); if (events.length > 0) { text += '\n'+toDay(day)+'('+weekday[d]+')' for (var e = 0; e < events.length; e++) { var event = events[e]; var title = event.getTitle(); var start = toTime(event.getStartTime()); text += '\n・' + title; } } } // LINEに送信 sendToLine(text); }
- 毎週日曜の夕方に上のプログラムを実行するように設定
1. Google Apps Scriptのプロジェクト一覧を開き、今回作成したプロジェクトの右端にある縦コロン三つのアイコンから「トリガー」をクリック。
2. トリガーを追加し、諸々を設定
3. 保存を押して終了 - Google Apps Scriptの設定完了
Author And Source
この問題について(LINE Notifyで自分のカレンダーから自動でリマインダーを流す), 我々は、より多くの情報をここで見つけました https://qiita.com/horisuke/items/07b8203155daaf1ab730著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .