walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

Google Apps Scriptを使ってGoogle CalendarをLINEに流す

こちらの記事の続きです。

walkingmask.hatenablog.com

結構はてブされていて、コメントで「スケジュールを円滑にする相手がいなくなってしまったため開発を中断...」の部分ばかり言及されていて大変恥ずかしい...

しかし、スケジュールを円滑にする相手がいなくなっていなかったので開発再開して数ヶ月運用していました。うぇい。

とはいえ、Go言語は全然触らなくなってしまっていて、Google Apps Scriptを使って実装しました。逃げた。

ソースはGistに1ファイルであげています。

今回、ちょこっとアップデートしたので、良い機会だしあの記事のシメとして記録。

見た目こんな感じです。

f:id:walkingmask:20180306221633p:plain:w300

こんな感じで日付、天気と温度から始まって、以降にお互いの直近7日間の予定と、24時間以内に追加された予定を知らせてくれます。

f:id:walkingmask:20180306221841p:plain:w300

foods:と投げると、登録した料理ジャンルからランダムに1つ返してくれる謎機能も実装。

優柔不断ペアなので、夕飯何食べたいかよく迷うのでこれで解決!(実際はコマンド機能のプレ実装的な感じです)

https://tabelog.com/imgview/original?id=r3740366441205

(画像はとっても美味しいインドカレー屋さんのカレーとナンの写真(食べログさんから))

作り方・設定

参考にしたURLなどはGistのコメントに記載したので、それとコードを照らし合わせながらやってけばなんとかなると思います()。

準備として、ScriptPropertyに以下の値を設定してあげる必要があります。

SPREADSHEET: 同じGoogle Drive上にあるGoogle SpreadsheetのID
REGION: 天気を知りたい地域
PUSH_API: LINE Messaging APIのPush APIのURL
REPLY_API: Reply APIのURL
CHANNEL_ACCESS_TOKEN: Message APIのトークン
GROUP_ID: 送りたいLINEグループのID
CALENDARS_INFOS: 情報を取得したいカレンダーのJSON String

LINEグループIDはGAS以外で取得した方が楽かもしれません。

CALENDARS_INFOSは[{"id":"GMAIL1@gmail.com","name":"name1"},{"id":"GMAIL2@gmail.com","name":"name2"}]といった形を取る必要があります。

あとは、var scriptを適当に変えるとオリジナリティが出ると思います。

決まった時間に定期的に送るようにするには、トリガーを使います。参考にしたURLがGistにあります。

あとは、公開したり、権限を付与したりすると使えるはずです!

是非、大事な人とカレンダーを共有するためのツールとして活用してみてください!

運用してみた感想

「え?行くって言ったよね?忘れたの?」

なんて言わせておへそを曲げさせたりすることは確実に減り、かなりスケジュールの共有・管理が円滑にできていると思います。

前より仲も良いし、とっても可愛いです😊

天気、food機能は今回アップデートしたものなので、運用して様子をみたいところですね。

他のコマンドをちょくちょく実装していくのも結構楽しみです。