10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SlackにBot Userを追加する

Last updated at Posted at 2020-05-06

背景

Qwiklabsの「Dialogflow で AI チャットボットを実装する」を実施し、課題をクリアしてChatbotデモができるようになったのですが、1時間だけ環境を借りて実施するのでは勿体無いので、自分のアカウントで実施してみました。さらに、他のサービスとのインテグレーションとしてSlackにチャットボットを載せるところまでやってみようと考えました。

ところが、参考にした「Slack | Dialogflow のドキュメント」の通りにはいかなかったところがありました。ここではその違いをまとめます。

ポイント

  • [Bot Users] > [Add a Bot User]はない。代わりに、アプリにbot token をつける。
  • 作成したアプリとは別に Dialogflow Bot というボットができていて、こちらと会話するとうまくいく。

作成手順

Slackアプリを作成する (リンク)

ここは基本的に同じ
image.png
もともと"HelpDesk" という名前で作ったが、ステップを再現するために新たに "HelpAgent" という新しい名前をつけています。

ボットユーザーを追加する (リンク)

"左側のメニューで [Bot Users] をクリックします。" とあるが、この [Bot Users] というのがない。
image.png
そのかわりに "Where's Bot User" というのがあるので、これをクリックすると、次のようなダイアログが出る。
image.png

App Homeに行ってみる。
image.png
2番目のブロックに、「bot token にスコープをアサインせよ」とある。

ここで [Review Scopes to Add] をクリックすると、[OAuth & Permissions] のセクションにいく。
image.png
ここから先は、元の文書「OAuth URL を追加する」 と同じになる。

  1. Dialogflow の Slack 設定ページから、[OAuth URL] の値をコピーする。
  2. [Add a new Redirect URL] ボタンをクリックし、コピーした OAuth URL を貼り付ける。
  3. [Add] をクリックする。

まだスコープをつけるということをやっていないので、このページの下の方の [Scope] のところで、
image.png
"Add permission by Scope or API method..." から、とりあえずはapp_mentions:readを選んだ。残りはあとで追加されることになる。

  • app_mentions:read アプリがいる会話の中で @helpdesk を直接メンションするメッセージを読むことができる
  • channels:history Helpdesk が追加されているパブリックチャネルでメッセージや他のコンテントをみることができる
  • groups:history Helpdesk が追加されているプライベートチャネルでメッセージや他のコンテントをみることができる
  • im:history Helpdesk が追加されているダイレクトメッセージでメッセージや他のコンテントをみることができる
  • im:read Helpdesk が追加されているダイレクトメッセージの基本情報をみることができる

ここではじめて、Redirect URLの "Save URLs" が有効になっている。"Save URLs" をクリックする。

Dialogflowの設定がまだだった。もとの文書にあるステップに戻る。

Slack を Dialogflow にリンクする (リンク)

  1. Dialogflow の左側のメニューで [Integrations] に移動する。
  2. [Slack] タイルをクリックする。
  3. 次のフィールドに関連する値を入力する。
  • クライアント ID (Slack Client ID)
  • クライアント シークレット (Slack Client Secret)
  • 検証トークン (Slack Verification Token)
  1. [Start] ボタンをクリックする。

OAuth URL を追加する (リンク)

ここはすでに行なっていた。

イベント リクエスト URL を追加する (リンク)

  1. Dialogflow の Slack 設定ページから、[Event Request URL] の値をコピーする。
  2. Slack のデベロッパー コンソールで、左側のメニューで [Event Subscriptions] をクリックする。
  3. スイッチをクリックし、イベントのサブスクリプション URL をリクエスト URL フィールドに貼り付ける。

リクエスト URL の欄の上に緑色の「確認済み」 (チェックマーク) が表示される。

イベント サブスクリプションを有効にする (リンク)

  1. 左側のメニューで [Event Subscriptions] をクリック。
  2. スイッチをクリックしてオプションを有効にする。
  3. [Subscribe to Bot Events] で、[Add Bot User Event] ボタンをクリック。次のイベントを追加する。
Event Name Description Required Scope
im_created A DM was created (DM が作成された) im:read
message.channels A message was posted to a channel (メッセージがチャンネルに投稿された) channels:history
message.groups A message was posted to a private channel (メッセージがプライベート チャンネルに投稿された) groups:history
message.im A message was posted in a direct message channel (メッセージがダイレクト メッセージ チャンネルに投稿されました) im:history

右側のカラムの "Required Scope" は自動的に追加されたもの。

イベントを追加したら、最後に画面の下部にある [Save Changes] ボタンをクリックする。

Slack ボットをチームに追加する(リンク)

  1. Slack のデベロッパー コンソールで、左側のメニューにある [Manage Distribution] をクリック。
  2. [Share Your App with Your Team] セクションで、[Add to Slack] ボタンをクリック。
  3. 次に表示されるページで [Authorize] ボタンをクリックして、エージェントを追加。

次のページは「Bot connection success」とのみ書かれたプレーンなページである。

テスト (リンク)

これで成功したはずだが、[Test In Slack] ボタンが出てこない。

SlackにはサイドバーのAppを選ぶと次のように出て、アプリ自体は登録されていることがわかる。
image.png

ここでHelpdeskを選択するとHelpdeskのページにいくのだが、「作業がまだ進行中です」と出る。
wait.jpg

この @helpdesk にDMで話しかけても、なんの反応もない。

ここで Dialogflow Bot の登場

そこで寝てしまったのだが、起きてもう一度見ると、メッセージの送り先に"Dialogflow Bot" というのが現れている。
image.png

この人に "Hello" とメッセージを送ってみたら、その後会話が続いた。imgo.jpg

結論

というわけで、思った通りではありませんでした、作成したアプリとは別に Dialogflow Bot というボットができていて、こちらと会話するとうまくいくという形で、なんとか動きました。

しかし、次に別のBotを加える場合、Dialogflow Botにかわるものができるでしょうか。名前はどうなるでしょうか。もし同じ名前でできたりしたら、このHelpdeskのアプリが呼びさせなくなるかもしれません。またおなじことをすれば復活できるのですが、ちょっとためらいますね。

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?