Google Calendar APIを用いた予定登録LINEBot
概要
LINE Botに決まったフォーマットで予定を入力すると自前のGoogle Calendarに予定を入力してくれるものです。
作成背景
個人で開発しようとしているサービスにLINE Botでの自動送受信とGoogle Calendarへ予定を転記する機能があります。 今までLINE BotもGoogle Calendar APIも使ったことがなかったので、実績経験を積むために今回の開発合宿での目標に設定しました。
使用技術
PHP(Laravel), Docker, LINE Messaging API, Google Calendar API, ngrok
動作
- LINEに以下フォーマットでテキストを送信する。
1行目:日付 2行目:予定のタイトル 3行目以降:判定なし
-
Botから予定登録しましたと返信がきます。
-
実際にGoogle Calendarを見てみましょう。 登録されていることがわかります。
これが今回作成したものになります。
大変だったところ
まずは、LINE Messaging APIでの送信処理です。 初めだったこともあり、思うようにいかなず、1日目の半分はここに消えました。💦
大枠の原因は、ルーティングをweb.php
に記述していたことでした。これをapi.php
に記述し直して、処理を書いていくと動作するようになりました。
次に、送信されたメッセージから日付をうまいこと抜き出して、Google Calendar APIで使用できる形に変換するところです。
動作のところでは2021年
と年まで入力していますが、今年のことであれば特に指定はしたくないため、月からの入力で登録できるようにするところが少し苦労しました。
正規表現をうまく使いこなして、実装できました。
最後に
今回は実装の経験値を積むことに重きを置いていたので、デプロイは行っていません。 今回作成したものを試したい場合は、Githubをpublicで公開していますので、クローンしてローカルで試してみてください。
Github
目次