BotkitでSlackのアプリメッセージをキャッチしたい

概要

SlackでBotkitを使用してbotを作るとき、ユーザーのメッセージに反応するにはambientだったりmention,direct_messageなど使うが、これらはアプリ経由やwebhook経由からのメッセージには反応しない。
つまり人間が発言したメッセージ以外はbotがキャッチしてくれない。

図で説明するとこんな感じ

スクリーンショット 2018-08-07 0.21.40.png

このAPPが付いたメッセージをBotkitでキャッチしたい、とする。

方法

controller.hearsで2番めのイベント引数にbot_messageを渡すだけで反応してくれる

const Botkit = require('botkit');
const controller = Botkit.slackbot();
controller.hears([''], 'ambient, bot_message', (bot, message) => {
    //botがあれこれする箇所
});

ちなみに、Botkit自身が投稿したSlackメッセージには反応しない。

備考

ちなみに、このbot_messageはBotkitドキュメントに見当たらず、下記Issueを見た時に偶然知った。

Any reason why bots don't hear other bots in slack? · Issue #284 · howdyai/botkit https://github.com/howdyai/botkit/issues/284

参考リンク

Botkit公式ドキュメント https://botkit.ai/docs/readme-slack.html