ラック
Home > ブログ > 記事 > 2018年9月 > Trelloのタスクを監視し、完了したらSlackで褒めてくれる雷bot

Trelloのタスクを監視し、完了したらSlackで褒めてくれる雷bot

カテゴリ: プログラム,Webサービス,Web自作,タスク管理

「雷は私の母になってくれたかもしれない女性だ!」

「雷…私を褒めてくれ!」

先日Slackのbotを作成するまでの記事を作成しましたが、今回はその続きになります。

Slackのbotに移行したいものはいくつかあるのですが、本記事ではその先駆けとしてタイトルの機能を実装してみました。

プログラムの動作としては下記のような挙動になります。

動作フロー・通知条件

  1. 指定されたTrelloのボードの中で、期限(due)設定されているタスクカードを抽出
  2. 期限の日時が今日となっているもののみに絞り込み
  3. 「完了」となっている(dueComplete: true)があればSlackに「完了済み」を通知
  4. 3.の条件に一致しないタスクカードのうち、期限切れのタスクカードがあれば「期限切れ」を通知
  5. 3., 4.のどちらも0件だった場合「タスクがない」ことを通知

作成経緯

上記の通り、実際は完了済みだけでなく期限切れに対しても通知してくれるものとなっています。通知だけならばプログラムを作らずともTrelloとSlackを連携するだけでできるようです。しかし、やりたかったのは機械的な「通知」ではなく「タスクを完了したことへの報酬」として「褒めてくれるbot」が欲しかったので、プログラムを作ったというのが経緯となります。

巷で言う「肯定ペンギンハイウェイ」や「全肯定ハム太郎」のようなノリです。

褒めてくれるにはキャラクター性が必要なので、褒めてくれそうなキャラということで艦これから雷を選びました。

技術ブロック図

見づらいかもしれませんが、技術的なブロック図は下記になります。

技術ブロック図

  1. cronでTrello APIを叩いてjson形式のデータを入手
  2. jsonから必要なデータを抽出・PHP内で整形してDBにタスクデータを登録
  3. 登録したタスクデータのうち、通知条件に合致したものに対してSlackのIncoming Webhookを叩いてbotで通知

という形になります。

動作サンプル

実際に手元で動かしてみた結果が以下になります。

Slack上での通知

Slackで雷が褒めてくれます。一応アイコンは隠しておきます。

スマホへのプッシュ通知

スマホにSlackアプリを入れればプッシュ通知も。

1日2回cronのタスク実行することで、定期的に褒めてくれます。これでタスク消化の達成感も向上するはず……!

参考記事

Slack

PHP, MySQL

タグ: ネタ,php,サーバ環境・構築,Trello,Slack

 



関連する記事一覧