LoginSignup
3
2

More than 5 years have passed since last update.

Amazon lexでつくったchatbotをSlackに紐づける方法

Posted at

関連)
Amazon lexで音声チャットボットを作成してみた
http://qiita.com/sitopp/items/b834fcda3bf9866140ea

上の記事の目的は音声チャットボットの作成だが、
chatbotを作っただけでは、AWSのコンソール以外からはどこからも呼び出しができない。
外部連携する必要がある。

lexが連携可能なチャンネル

3つある。

  • Facebook
  • Twilio SMS 
  • Slack 

Appleのオンラインストアのチャットボットみたいな、ブラウザからの呼び出しはできない。残念。

また、この3種類のうち、音声入力ができるのって「Twilio SMS」だけなんじゃないかしら。

そこで、今の所は不本意ながらテキストベースのチャットボットとslackで一度連携をやってみて、基本的な連携方法を把握してみることにする。

lexで作ったchatbotをslackと連携する

Slackとの連携の仕方に全部書いてあるので、この通りやる。
ただし1と2が複雑なので、自分はこの部分を花の注文チャットボットサンプル作成で代用した。

そのあと、Step 3: Create a Slack Application からStep6までをこの説明に書かれている通りにやる

つまづいた点

[Step4でつまづいた点]

課題:
Step4で、「RelativeId does not match Lex ARN format: bot-channel:(botのname)::cnannelのname)」と言うエラーが出てしまった。

解決策:
botをpublishする必要があった。

やり方:
lexのbotの設定画面右上の「publish」をクリック。
cb-9.png

aliasに「beta」と記入、「Publish」をクリック。
cb-9-1.png

登録のため数秒待つ。インジケーターがくるくる回るのを眺める。

登録完了した。以下のポップアップが表示されるので、「Go to channels」を押す。
cb-10.png

これをやると、Step:4のChannels設定画面で「Alias」に「beta」が選択できるようになり、先へ進む。
一般に公開したくないのに「Publish」するというのは気持ち悪いけど、致し方ない。

[Step5でつまづいた点]

問題:STEP6まで進んでいざchat botを呼び出した時に、何もお返事しない。

解決策:
Step5の「Redirect URLs」の設定は、addのあとSave URLsをクリックしないと反映されないが、addしかしてなかった。ちゃんと両方やる。

[Step6でつまづいた点]

問題:
Shareable URLをブラウザで開いても、エラーが出てしまった

解決策:
Setteings > install app > Reinstall app(緑のボタン)で自分のSlack Groupにインストールする方法で代用した。

完成

花屋のchatbotをSlackから呼び出しているところ。

cb-99.png

最初の2回はStep5でつまづいていて、うまくいかなかったとき。
3回目は完成していたが、Sample utterancesにない「hey」という言葉で呼びかけたので「おっしゃることがわかりません」と返されてしまった。
4回目は成功。期待通りの答えが返ってきた。

うまくいきました(΄◉◞౪◟◉`)

以上!

補足

IBMのWatsonを使って、音声をテキストに変換してSlackに表示させるボットすでにあるらしい。
http://plus.appgiga.jp/masatolan/2015/07/02/56363/ の「Phonebot」
Githubの日付をみると2years ago..えっ? まじか。。Watsonてそんな前から音声認識APIを公開してたの?..

3
2
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
3
2