Bot Builder SDK を使って作成したチャットボットを Slack チャンネルに接続することで、Slack ワークスペース内のユーザーがチャットボットと会話できるようになります。
Slack に Bot Framework で作成したボットを接続する
Microsoft Azure 上に作成したボットアプリを Slack に接続するには、下記の Bot Service 公式ドキュメントで説明されている手順に従ってください。
- (日本語)ボットを Slack に接続する - Bot Service | Microsoft Docs
- (英語)Connect a bot to Slack - Bot Service | Microsoft Docs
接続のおおまかな手順は下記のような感じです。
- Slack アプリを作成する(何らかのワークスペースに所属させる形で作成する)
- Slack アプリにボット用のユーザーを登録する
- Azure ポータルから、Web アプリボットのチャンネルとして Slack を追加(Slack アプリ側の Client ID、Client Secret、Verification Token をコピペすれば OK)
この作業が終わると、ボット(アプリ)が Slack のワークスペースに参加している状態になります。 その時点ではどのチャンネルにも参加していませんが、ダイレクトメッセージを使って一対一でボットと会話することができます。
特定のチャンネルで会話している最中に @ボット名
と話かけると、そのチャンネルにボットを招待することができます。
チャンネルにボットが参加すると、後はそのチャンネルに対してつぶやくだけでボットが反応するようになります。
わかりにくいところの補足
図入りで説明されているので、特に迷うことはないと思いますが、Microsoft の Bot チームのドキュメント通りにはうまくいかない部分があるので若干補足しておきます。
ボットハンドル
「ボットのイベントをサブスクライブ」するという項目で、下記のような Request URL でボットハンドル (YourBotHandle) を指定するところがあります。
ドキュメント内では、ボットハンドルは ボットポータル 上でボットを選択すると確認できると記述されていますが、そもそもボットを Azure ポータル から作成しているようなケースでは、ボットポータル上でボットを参照することができません。
ボットハンドルには、Azure ポータル上で見える Web アプリボットリソースの名前(上図)と同じものを指定すれば OK です。 Azure ポータル上でリソース名を確認しましょう。
関連記事
- チャットボット: Bot Builder SDK で会話の状態を保存する (Storage)
- チャットボット: ActivityHandler でボットのイベントハンドラ実装を簡略化する
- チャットボット: 作成したチャットボットを LINE に接続する
- LUIS (4) botbuilder-ai ライブラリを使って LUIS の API を利用する
- チャットボット: LUIS や QnA Maker サービスへの接続情報を .bot ファイルから取得する
- チャットボット: MS Bot Framework の .bot ファイルで接続情報を管理する
- チャットボット: Azure ポータルで生成されるボットのテンプレートコードを解読&リファクタしてみる