Edited at

Watson Assistant の ユーザー・インターフェースに Slack を使用する

More than 1 year has passed since last update.

(2018/6/19 Conversation -> Assistant の変更他、最新の情報にUpdate)


はじめに

Watson Assistant(以降Assistant)はチャットボットのAPIを提供するサービスなので、ユーザー・インターフェース(UI)は別途作成するか、あるいは既存のツールと組み合わせて使用することになります。Assistantは製品としてSlackをUIにするための機能を持っていいるので、その設定方法を紹介します。


準備


Slack

管理権限のあるSlackのワークスペースが必要になるので、無い場合は slack.com/create から作成しましょう。メールアドレスがあれば簡単に作成することができます。


Assistant

SlackとつなぐAssistantのワークスペースも準備します。私は別記事で作成したレンタカー予約のワークスペースを使用しますが、最低限のDialogフローが動けば何でもよいです。


Slackとつなぐ

AssistantワークスペースのDeployタブを開き、Slackの「Deploy」ボタンをクリックします。

「Deploy to Slack app」「Test in Slack」のどちらかが選択できますが、まずは簡単な「Test in Slack」の方からやってみます。


簡単編

2018/6/19追記 2018年5月のリリースで「Test in Slack」機能は削除されました

「Test in Slack」の場合ボットの名前が「@ibmwatson_test」で固定等、細かいカスタマイズはできませんが、とりあえず使ってみたいという場合にお勧めです。「Test in Slack」ボタンをクリックし、表示される画面で「Authorize Slack」をクリックします。

SlackワークスペースのURLを入力し、「Continue」をクリックします。

メールアドレス、パスワードを入力し、「Sign in」をクリックします。

承認画面が表示されるので、「許可する」をクリックします。

Slackの適当なチャンネルに「@ibmwatson_bot」を招待します。

これで会話の準備ができたのでやってみます。

うまく会話できているようです。


応用編

「Deploy to Slack app」の方もやってみます。「Deploy to Slack app」ボタンをクリックすると作業のステップが表示されます。まず Create a Slack app をクリックし、表示される画面で「Create a Slack app」をクリックします。

「App Name」「Deployment Slack Workspace」を指定し、Slackアプリを作成します。

AssistantのDeploymentの名前を指定します。

SlackアプリのBotユーザーを作成します。「Always Show My Bot as Online」は「On」にします。

Slackアプリの設定画面で確認できるCredentialを、Assistantの設定画面にコピペして、「Generat」ボタンをクリックします。

Redirect URL が生成されるので、Slackアプリの「OAuth & Permissions」の「Redirect URLs」にコピペして「Save URL」します。

「Event Subscriptions」で「Enable Events」を「On」にして、Assistantの設定画面からRequest URLをコピペします。

「Subscribe to Bot Events」セクションんで「Add Bot User Event」をクリックし、「message.channels」を追加します。

「Save Changes」をクリックして設定を保存します。

Assistant設定画面で「Authorize Slack」ボタンをクリックし、表示される画面でSlackワークスペースを指定いします。

承認画面が表示されるので、「許可する」をクリックします。

Slackの適当なチャンネルにBotユーザーを招待します。

会話の準備ができたのでやってみます。