まくろぐ

チャットボット: 作成したチャットボットを Slack に接続する

更新:
作成:
Bot Builder SDK を使って作成したチャットボットを Slack チャンネルに接続することで、Slack ワークスペース内のユーザーがチャットボットと会話できるようになります。

Slack に Bot Framework で作成したボットを接続する

/p/rtxqceq/connect-to-slack-001.png
図: ボットとのダイレクトメッセージによる会話

Microsoft Azure 上に作成したボットアプリを Slack に接続するには、下記の Bot Service 公式ドキュメントで説明されている手順に従ってください。

接続のおおまかな手順は下記のような感じです。

  1. Slack アプリを作成する(何らかのワークスペースに所属させる形で作成する)
  2. Slack アプリにボット用のユーザーを登録する
  3. Azure ポータルから、Web アプリボットのチャンネルとして Slack を追加(Slack アプリ側の Client ID、Client Secret、Verification Token をコピペすれば OK)

この作業が終わると、ボット(アプリ)が Slack のワークスペースに参加している状態になります。 その時点ではどのチャンネルにも参加していませんが、ダイレクトメッセージを使って一対一でボットと会話することができます。

特定のチャンネルで会話している最中に @ボット名 と話かけると、そのチャンネルにボットを招待することができます。 チャンネルにボットが参加すると、後はそのチャンネルに対してつぶやくだけでボットが反応するようになります。

わかりにくいところの補足

図入りで説明されているので、特に迷うことはないと思いますが、Microsoft の Bot チームのドキュメント通りにはうまくいかない部分があるので若干補足しておきます。

ボットハンドル

「ボットのイベントをサブスクライブ」するという項目で、下記のような Request URL でボットハンドル (YourBotHandle) を指定するところがあります。

https://slack.botframework.com/api/Events/{YourBotHandle}

ドキュメント内では、ボットハンドルは ボットポータル 上でボットを選択すると確認できると記述されていますが、そもそもボットを Azure ポータル から作成しているようなケースでは、ボットポータル上でボットを参照することができません。

/p/rtxqceq/connect-to-slack-002.png

ボットハンドルには、Azure ポータル上で見える Web アプリボットリソースの名前(上図)と同じものを指定すれば OK です。 Azure ポータル上でリソース名を確認しましょう。

まくろぐ
サイトマップまくへのメッセージ