🌞

LINE Messaging APIでリマインダーを作ってみた

2021/05/16に公開

背景

Line Messaging APIを使って何か作りたいと思い、まずは自分の予定を登録したり通知してくれる簡易的なリマインダーを作成

利用したサービスと役割

  • LINE Messaging API(以下API)
    • メッセージの送受信
  • Google App Script(以下GAS)
    • ロジックの実装
    • プッシュ通知
  • Google Spread Sheet(以下GSS)
    • 予定を登録するデータベース

システムの構成と機能

構成

機能

  • 予定の登録
    • ユーザーがLINEからメッセージを登録することで予定を登録する
  • 予定の通知
    • GASのトリガー機能を使い、定刻にユーザーへ翌日の予定を通知する

実装

Messaging API

  1. プロパイダーとチャンネルの作成
    Messaging APIを利用するためにプロバイダーとチャンネルを作成
    以下を参照
    https://developers.line.biz/ja/docs/messaging-api/getting-started/

  2. 作成したチャンネルを友達登録する
    チャンネルの設定画面のQRコードを読み込み、友達登録する

  3. チャンネルアクセストークンを控える
    チャンネルの設定画面にあるチャンネルアクセストークンを控えておく
    GASからAPIを呼び出すために使用する

Google Spread Sheet

  1. スプレッドシートおよびシートの作成
    予定を登録するためのスプレッドシートとシートを作成する

  2. スプレッドシートIDとシート名を控える
    作成したスプレッドシートのIDとシート名を控えておく
    GASからスプレッドシートを操作するために使用する

    スプレッドシートIDは以下の部分
    docs.google.com/spreadsheets/d/<スプレッドシートID>/edit#gid=0

    シート名はそのまま使用する

Google App Script

  1. プロジェクトの作成
    GASの管理画面から新規プロジェクトを作成する

  2. ロジックの実装
    上述した機能を実現するためのロジックをスクリプトで実装する
    https://github.com/masaya-kemmochi/reminder_bot

  3. トリガーの設定
    定刻にリマインドをするためのトリガーを設定する
    実行する時刻などは任意で

作ってみた結果・・・

予定の登録と、登録できないパターン

予定の通知

  • 決まった形式でない場合は、その形式でメッセージを送るようにユーザーに通知する
  • 登録できた場合はメッセージを返してくれる
  • ユーザーの明日の予定は全て通知してくれる

作ってみた感想

  • 実装自体は簡単
    • 作りとしては簡易すぎる・・・?(決まった形式じゃないと予定を登録できない)
  • 展望としては、
    • 登録するためのメッセージの形式は柔軟に受け取れるようにしたい
      「登録」「登録して」「追加して」とかバリエーションを増やす
    • 既に登録した予定の修正・削除機能の実装

参考

Discussion