概要
2021年10月に登場した「IBM Watson Assistant New Experience(new Watson Assistant)」におけるSlack連携を確認します。Slack連携には、Watson Assistant プラスプランが必要です。IBM Cloudを利用している場合、30日間無料で使える「トライアル」という名称のWatson Assistantのプランがありますので、それを使用します。
設定することで出来るもの
Watson Assistant New Experience (new Watson Assistant)のSlack連携を使って、次のようなチャットボットを作成します。
もとになるWatson Assistantで作成したチャットボット
下図は、Watson AssistantをNew Experienceに切り替え、作成したチャットボットです。
Slack連携後のチャットボット
Slack連携により、Slack上で動くようになったWatson Assistant チャットボット
準備しておくもの
Slack連携に取り組むにあたり、次の2つを用意しておきます。
Watson Assistantの料金プランで、トライアルを選び作成
IBM Cloudで、Watson Assistantを作成します。料金プランは、トライアルを選び、Watson Assistantのインスタンスを作成します。
Watson Assistant New Experienceで、チャットボットを作成
こちらについては、以下の資料を参考に作成してください。
Watson Assistant によるホームページに設置できるチャットボットの作成手順:3. Watson Assistant によるチャットボットの作成 << Watson Assistant New Experience におけるチャットボットの作成手順になります。
Slack連携
New Experience状態のWatson Assistantで、Integrations から、Slackを見つけ、「Add」をクリックします。
「confirm」をクリックして、Slack連携のセットアップを行います。
Set up to slack : Get Started
作業手順が表示されます。英語が指示が表示されます。画面右上の「Next」をクリックして次へ進みます。
Set up to slack : Step1
Slackアプリの作成
画面の英文を読みます。Slackアプリを作るように指示していますので、https://api.slack.com/apps にアクセスして、Slackアプリを作ります。今回は、開発や検証に使用している自分用のSlack環境(例 cogbot-group)を使用し、下図のような名前のSlackアプリを作りました。
Verification Token の取得
Slackアプリ作成後、Slackアプリの画面で、Basic Information 内のApp Credentialsから、Verification Tokenをコピーします。
Watson Assistantの画面に戻り、「Next」をクリックします。
Set up to slack : Step2
取得したSlackアプリの「Verification Token」を入力します。
画面指示に従い、SlackアプリのOAuth & Permissionsで、Bot Token Scopesに、OAuth Scopeを追加するとともに、Bot OAuth access token をSlackアプリ側で取得し、入力します。
Slackアプリ側の操作
Slackアプリで、OAuth & Permissionsで、Bot Token Scopesに指示通りにOAuth Scopeを「Add an OAuth Scope」をクリックして追加します。
Watson Assistant の指示に従って追加した場合。
OAuth & Permissionsで、「Install to Workspace」をクリックします。
アプリの権限リクエスト画面が表示されますので、「許可する」をクリックします。
Bot User OAuth Tokenが表示されます。
取得したBot User OAuth Tokenを入力
Watson Assistantの画面に戻り、取得したBot User OAuth Tokenを入力します。
画面右上の「Next」をクリックします。
Set up to slack : Step3
Step3 では、生成された「request URL」をSlackアプリ側に設置します。また後々の作業でも「request URL」は使用しますので、どこかに控えておきましょう。
Slackアプリの、Event Subscriptionsを設定
Slackアプリで、画面左側の「Event Subscriptions」をクリックします。表示される「Enable Events」のトグルボタンをクリックし、Onの緑色の状態にします。
「Request URL」の欄に、Watson Assistant側で生成された「request URL」を配置します。
次に、「Subscribe to bot events」をクリックします。「Add Bot User Event」をクリックして、「message.im」と「app_mention」を追加します。
画面右下の「Save changes」をクリックして保存します。
Watson Assistantの画面に戻り、「Next」をクリック
次の画面へ。
Set up to slack : Step4
Slackアプリ側の設定を行う必要があります。
SlackアプリのApp Home 設定
Slackアプリの画面左側で、App Homeをクリックし、表示された「Always Show My Bot as Online」をトグルボタンをクリックして有効にします。
もし、Slackアプリのアプリ名を変更したい場合は、App Home画面で、「App Display Name」の「Edit」をクリックすることで変更することができます。
App Home下のShow Tabsの設定
引き続き、App Home 画面で、「Show Tabs」下の「Messages Tab」のトグルボタンをクリックして有効にします。
Interactivity & Shortcuts 設定
Slackアプリの画面左側で、Interactivity & Shortcutsをクリックし、表示された「Interactivity」のトグルボタンが「On」になっていることを確認します。
次に、「Request URL」に、控えておいた「request URL」をセットします。この「request URL」は、【Set up to slack : Step3】の作業で確認したWatson Assistantで生成された「request URL」のことです。
画面右下の「Save changes」をクリックして保存します。
Watson Assistant 画面に戻る
Watson Assistantの画面に戻り、「Finish」をクリックします。
Watson AssistantのIntegrationsで、Slack連携の有効化確認
New Experience状態となっている Watson Assistant 画面で、画面左側の「Integrations」をクリックし、下図のようにSlack連携が有効になっていることを確認します。
また、最初に設定したSlack連携はDraft環境として扱われ、Live環境(=本番)向けに「Open」をクリックすることで、Live環境向けのSlack連携を設定することができます。
動作確認
Slackにアクセスし、Slackアプリに対して質問をしてみましょう。
Watson Assistant New Experienceで作成したチャットボットが、Slack上で動作することを確認することができます。
所感
Watson Assistant New Experienceは、2021年11月9日現在、Actions Skillがメインで、Dialog Skillを使用することはできませんが、「Draft」と「Live」といった、開発・検証の場合や本番の場合で分けて、Slack連携やWeb Chatの公開ができ、より開発者にフォーカスしている印象を受けます。
参考資料
- Watson Assistant リリースノート
- new Watson Assistant << Watson Assistant New Experience
- Watson Assistant によるホームページに設置できるチャットボットの作成手順 << Watson Assistant New Experience におけるチャットボットの作成手順