Google Calendar APIを用いた予定登録LINEBot

PHP

Laravel

GitHub

Docker

概要

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

目次