Chouseisan Reminder Bot
出欠管理ツール「調整さん」から出欠情報を取得し、期日(開催日)の数日前に参加状況を流すLINE BOT
動作仕様
LINEからのコールバック受信時
友だち登録、グループ/ルームへの招待イベント
- 対象のIDを購読者としてデータストアに追加
- 送信者(ユーザ/グループ/ルーム)に「リマインダを登録しました」メッセージを送信
ブロック(友だち登録解除)、グループからの削除イベント
- 対象のIDを購読者から削除
- メッセージは送信しない(受け取る相手がいないため)
- トークルームからのleaveイベントもグループと同様の処理をするが、実際にはこのイベントは送信されない
トーク受信
/set chouseisan
コマンドで、リマインド対象の調整さんイベントを設定できる
- グループ利用を想定しているため、テキストメッセージのオウム返しはしない
定時実行
- 毎日8:00に定時実行し、購読者ごとの調整さんイベント日程をクロール
- 3日後もしくは当日の予定があれば、その購読者に出欠入力状況を送信
- ここで
Push Message
APIを使用するため、BOTアカウントの契約プランはDeveloper Trialかプロ以上が必要。
Webブラウザからのアクセス時
動作環境
- 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 test
、make deploy
の際に生成されるversion.goファイルに定義される。
直接goapp deploy
コマンドでApp Engineにデプロイすると、定数version
が未定義なためエラーとなる。make deploy
コマンドを使うこと。
LINE BOTについて
- トライアルで提供されていた BOT API Trialはdeprecatedされたため、新しいMessaging APIを利用するよう書き換えた
- 開設したチャンネルの"Basic Information"にある"Callback URL"に、コールバックを受け取るURLを設定する必要がある。記述例:
https:// YOUR-APPLICATION-ID .appspot.com:443/line/callback
- その他、LINE BOTまわりは下記ブログエントリを参照
調整さんについて