Skip to content

nowsprinting/ChouseisanReminder

Repository files navigation

Chouseisan Reminder Bot

Build Status Coverage Status

出欠管理ツール「調整さん」から出欠情報を取得し、期日(開催日)の数日前に参加状況を流すLINE BOT

動作仕様

LINEからのコールバック受信時

友だち登録、グループ/ルームへの招待イベント
  • 対象のIDを購読者としてデータストアに追加
  • 送信者(ユーザ/グループ/ルーム)に「リマインダを登録しました」メッセージを送信
ブロック(友だち登録解除)、グループからの削除イベント
  • 対象のIDを購読者から削除
  • メッセージは送信しない(受け取る相手がいないため)
  • トークルームからのleaveイベントもグループと同様の処理をするが、実際にはこのイベントは送信されない
トーク受信
  • /set chouseisanコマンドで、リマインド対象の調整さんイベントを設定できる
  • /set nameコマンドで、グループの表示名を設定できる
  • /versionコマンドで、BOTアプリのバージョン番号を表示
  • グループ利用を想定しているため、テキストメッセージのオウム返しはしない

定時実行

  • 毎日8:00に定時実行し、購読者ごとの調整さんイベント日程をクロール
  • 3日後もしくは当日の予定があれば、その購読者に出欠入力状況を送信
    • ここでPush MessageAPIを使用するため、BOTアカウントの契約プランはDeveloper Trialかプロ以上が必要。

Webブラウザからのアクセス時

  • usage.htmlを表示する

動作環境

  • Google App Engine SDK for Go 1.9.40
  • Go SDK for the LINE Messaging API

設定ファイル

以下のファイルを準備する

app.yaml

app.yamlにはLINE BOTのキー情報などを含むため、リポジトリから除外している。下記の書式でapp.yamlを作成すること

application: YOUR-APPLICATION-ID
version: 2
runtime: go
api_version: go1

handlers:
- url: /img
  static_dir: img
- url: /task/.*
  script: _go_app
  login: admin
- url: /cron/.*
  script: _go_app
  login: admin
- url: /.*
  script: _go_app

env_variables:
  LINE_CHANNEL_SECRET: 'YOUR_CHANNEL_SECRET'
  LINE_CHANNEL_ACCESS_TOKEN: 'YOUR_ACCESS_TOKEN'

LINE BOTのQRコード

LINE BOTのQRコードを/img/linebot_qr.pngに置くこと(usage.htmlからリンクしている)

version.go

バージョン番号は、make testmake deployの際に生成されるversion.goファイルに定義される。このファイルはリポジトリ管理対象外。

git cloneしたプロジェクトを直接goapp deployコマンドでApp Engineにデプロイすると、定数versionが未定義なためエラーとなる。make deployを使うこと。

LINE BOTについて

調整さんについて