Dialogflowを使ったノンコーディングSlackボットを作ってみる #slack

2019.04.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、中村です。

今回もSlackボットを作成していきます。日本語の利用ができ、Slackへの統合機能も備えているDialogflowを使います。したがって今回の操作は、SlackとDialogflowのみで完結します。

Slack事前準備

Slack API Your AppsにてCreate New AppをクリックしてAppを作成しましょう。App NameとDevelopment Slack Workspaceを入力してCreate Appをクリックし作成されます。

Basic InformationのApp CredentialsからClient IDClient SecretVerification Tokenをメモしておきます。Dialogflowへ登録します。

Bot UserにてAppへ紐づいたユーザーを作成します。Display nameDefault usernameAlways Show My Bot as Onlineを入力しユーザーを追加します。

残りの項目については、Dialogflowで作成する情報が必要になるため、次はDialogflowを設定していきます。

Dialogflow

Dialogflowへアクセスします。 まずは今回作成するボットを作成します。Dialogflowではエージェントと呼ばれています。Agent NameDEFAULT LANGUAGEを入力しCREATEをクリックしてください。

エージェントの作成が完了したら統合の設定をします。Integrationsへアクセスしてください。

Dialogflowでは様々なサービスへの接続を行えます。今回はSlackですので、SlackのスイッチをOnにしましょう。先ほどメモしたClient IDClient SecretVerification Tokenを入力し、今度はOAuth URLEvent Request URLをメモしておきましょう。

最後にSlackへDialogflowの情報を登録してテストしてみましょう。

SlackとDialogflowを接続する

先ほど作成したSlack Appのページで、Interactive Componentsにアクセスしてください。スイッチをOnにしてInteractivityのRequest URLに先ほどメモしたEvent Request URLを登録し保存します。

次にOAuth & PermissionsのRedirect URLにOAuth URLを登録し保存します。Scopesにはボットの権限を登録します。ボットは先ほど追加したユーザを通してメッセージを送信する機能が必須になるので追加し保存してください。

最後にEvent SubscriptionsにてEnable EventsをOnにし、Request URLにEvent Request URLを登録し、Subscribe to Bot Eventsでmessage.imを追加します。これは、Request URLへリクエストを送信するトリガーになります。

これで設定は完了です。最後にManage DisributionのAdd Slackからワークスペースへ追加します。またOAuth & Permissionsでも追加が可能です。

追加したらSlackのAppから先ほど作成したユーザーを選択し、メッセージを送信してみます。Dialogflowではエージェント作成時に挨拶を受け付けるもの・テキストを認識できなかった時に起動するものの2つがデフォルトで存在しています。そのためSlackよりメッセージを送信すれば下記のような結果が返ってくと思います。(レスポンス内容はIntents内で定義されています。)

まとめ

DialogflowでもAmazon Lexと同様にSlackボットを接続できました。ここまできたら次は実際に利用したいフローを実装していきましょう!

チャットボット開発は弊社にご相談ください。

またAmazon Connectのキャンペーンを行なっております。こちらもご相談お待ちしております。