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

動作

  1. LINEに以下フォーマットでテキストを送信する。
1行目:日付 2行目:予定のタイトル 3行目以降:判定なし
  1. Botから予定登録しましたと返信がきます。 スクリーンショット 20211107 12.49.53.png

  2. 実際にGoogle Calendarを見てみましょう。 登録されていることがわかります。 スクリーンショット 20211107 12.16.19.png

これが今回作成したものになります。

大変だったところ

まずは、LINE Messaging APIでの送信処理です。 初めだったこともあり、思うようにいかなず、1日目の半分はここに消えました。💦

大枠の原因は、ルーティングをweb.phpに記述していたことでした。これをapi.phpに記述し直して、処理を書いていくと動作するようになりました。

次に、送信されたメッセージから日付をうまいこと抜き出して、Google Calendar APIで使用できる形に変換するところです。 動作のところでは2021年と年まで入力していますが、今年のことであれば特に指定はしたくないため、月からの入力で登録できるようにするところが少し苦労しました。

正規表現をうまく使いこなして、実装できました。

最後に

今回は実装の経験値を積むことに重きを置いていたので、デプロイは行っていません。 今回作成したものを試したい場合は、Githubをpublicで公開していますので、クローンしてローカルで試してみてください。

Github

https://github.com/SkBoyZ/laravel-line-bot

Sakakky

@Sakakky6825