今後のために過去の記事を復活させておきます。
雷…私を褒めてくれ!
先日 Slack のbotを作成するまでの記事を作成しましたが、今回はその続きになります。
Slack のbotに移行したいものはいくつかあるのですが、本記事ではその先駆けとしてタイトルの機能を実装してみました。
プログラムの動作としては下記のような挙動になります。
動作フロー・通知条件
- 指定された Trello のボードの中で、期限(
due
)設定されているタスクカードを抽出 - 期限の日時が今日となっているもののみに絞り込み
- 「完了」となっている(
dueComplete: true
)があれば Slack に「完了済み」として褒める - 3.の条件に一致しないタスクカードのうち、期限切れのタスクカードがあれば「期限切れ」でも励ます
- 3., 4.のどちらも0件だった場合「タスクがない」ことを知らせる
作成経緯
上記の通り、実際は完了済みだけでなく期限切れに対しても通知してくれるものとなっています。通知だけならばプログラムを作らずとも Trello と Slack を連携するだけでできるようです。しかし、やりたかったのは機械的な「通知」ではなく「タスクを完了したことへの報酬」として「褒めてくれるbot」が欲しかったので、プログラムを作ったというのが経緯となります。
技術ブロック図
技術的なブロック図は下記になります。
- cron で Trello APIを叩いてjson形式のデータを入手
- JSON から必要なデータを抽出、 PHP 内で整形してDBにタスクデータを登録
- 登録したタスクデータのうち、通知条件に合致したものに対して Slack の Incoming Webhook を叩いてbotで通知
という形になります。
動作サンプル
実際に手元で動かしてみた結果が以下になります。
Slack で雷が褒めてくれます。一応アイコンは隠しておきます。
スマホに Slack アプリを入れればプッシュ通知も。