Slack チャットボット的なものを作るときは / command よりも @chatbot で話しかけるのを俺は好む

追記

教えていただきました! ありがとうございます!

Enabling interactivity with Slash Commands | Slack

When the response_type is in_channel, both the response message and the initial Slash Command typed by the user will be shared in the channel:


チャットボットというか最近だと Slack アプリを作ると大体 /chatbot do something 的な実装されることが多いし実際推奨されている気がする。ちなみに別に裏はとってないけどw で、@chatbot do something 的な話しかけるやり方はモダンじゃない古いやり方な気もする。

だけど俺は @chatbot do something 的なやつの方が好きだ。というか /command 的なのはチャットボットの良さをひとつ消している気がする。俺の勝手定義でチャットボットの二大利点は

  1. スグにアクセスできる場所でコマンド実行できる
  2. 何を実行したか他の人にも見えている

だと思っている。で、2の利点が俺は結構大事だと思ってて、これは通知とは違って他の人に誰が何をやったかが見えるし、新しく入った人も自然に覚える。

例えばデプロイを例に出してみよう

/command の場合

  1. デプロイする人は Slack に /chatbot deploy と打ち込む。これは打ち込んだ本人にしか見えない。
  2. chatbot が応答で「デプロイします」とかいう。これは全員に見える

@chatbot で話しかける場合

  1. デプロイする人は Slack に @chatbot deploy と打ち込む。これは全員に見える
  2. chatbot が応答で「デプロイします」とかいう。これは全員に見える

@ で話しかけた方は誰が話しかけたのかも、なんて話しかけたのかも全員に見える。新しく入社したエンジニアもそれをみたら「あ、俺もああやって話しかければいいんだな」とスグに理解できるだろう。でも /command の時はボットの反応しか見えない。ボットの反応テキストを工夫すれば誰が行ったかとかは見える。けれどもどういったコマンドを打ったかは見えない。なんならコマンドラインか何かでデプロイ実行した時の通知が飛んできているのとの判断も難しい。それを見ただけでは /command で実行したのか、他の手段で実行して通知が来ただけなのか判断するのは難しいだろう。

もちろん /command にも保管とか色々なUIを入力者に出せたり利点があるのは理解してる。でも俺はそういったのが必要でなければなるべく @ で話しかける方で実装する方が好きかなー

本題ですが最近のおすすめの漫画はカナカナです。