出欠管理ツール「調整さん」から出欠情報を取得し、期日(開催日)の数日前に参加状況を流すLINE BOT
- 対象のIDを購読者としてデータストアに追加
- 送信者(ユーザ/グループ/ルーム)に「リマインダを登録しました」メッセージを送信
- 対象のIDを購読者から削除
- メッセージは送信しない(受け取る相手がいないため)
- トークルームからのleaveイベントもグループと同様の処理をするが、実際にはこのイベントは送信されない
/set chouseisan
コマンドで、リマインド対象の調整さんイベントを設定できる/set name
コマンドで、グループの表示名を設定できる/version
コマンドで、BOTアプリのバージョン番号を表示- グループ利用を想定しているため、テキストメッセージのオウム返しはしない
- 毎日8:00に定時実行し、購読者ごとの調整さんイベント日程をクロール
- 3日後もしくは当日の予定があれば、その購読者に出欠入力状況を送信
- ここで
Push Message
APIを使用するため、BOTアカウントの契約プランはDeveloper Trialかプロ以上が必要。
- ここで
- usage.htmlを表示する
- Google App Engine SDK for Go 1.9.40
- Go SDK for the LINE Messaging API
以下のファイルを準備する
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コードを/img/linebot_qr.png
に置くこと(usage.htmlからリンクしている)
バージョン番号は、make test
、make deploy
の際に生成されるversion.goファイルに定義される。このファイルはリポジトリ管理対象外。
git clone
したプロジェクトを直接goapp deploy
コマンドでApp Engineにデプロイすると、定数version
が未定義なためエラーとなる。make deploy
を使うこと。
- トライアルで提供されていた BOT API Trialはdeprecatedされたため、新しいMessaging APIを利用するよう書き換えた(v2.0.0)
- see: LINE Developers - Messaging API - Overview
- v1.0.0とはデータストアに格納するMIDに互換性がないため、v1.0.0で動作していたアプリケーションを継続運用する場合は注意すること。
- 開設したチャンネルの"Basic Information"にある"Callback URL"に、コールバックを受け取るURLを設定する必要がある。記述例:
https:// YOUR-APPLICATION-ID .appspot.com:443/line/callback
- その他、LINE BOTまわりは下記ブログエントリを参照
- https://chouseisan.com/
- 開催日決定ツールとしてでなく、出欠確認ツールとして利用する