はじめに
Watson ConversationでLINEのチャットボットを作ってみる(後編)という記事で、簡単なWatson Conversationの対話を作ってみました。今回はこれを、Slackbotとして活躍させてみます。仕組みとしては、Open Whisk(Function)という『イベント駆動型』のサービスが裏で動いています。リソースを占有せず動いた時だけ課金するという、注目の技術ですね。
Workspaceの作成
上の記事を参考にして、Workspaceを作ってみてください。できるとこんな画面になります。
WorkspaceのDeploy
いきなりですが、左のメニュー、上から3つ目にあるDeployボタンを押してみます。
こんなのが出て入れば、Slackのところにある『Test in Slack』を押してください。
SlackのAuthorize
注意書きを読むと、Slack teamに許可を取る必要があると書かれています。『Authorize Slack』ボタンを押して、許可を取りましょう。
このブラウザで使っていた、自分のSlack teamが出てきました。『Authorize』を押してみます。
自動的に元いたDeployの画面に戻ってきました。Slack teamが表示されているので、承認された状態のようです。Step 2に書かれているのは、Slack teamのチャンネルでの使い方です。右にあるコマンドを使いたいチャンネルで使うと招待してくれますので、貼り付けて使いましょう。その前にまず、動作を確認してみますのでSlackのteamを開いてみます。
Slackでのテスト
Appsのところにibmwatson_botがいます。話しかけてみると、作ったWorkspaceが返事していることがわかりますね。
generalのチャンネルに招待してみます。先ほどコピーして貼り付けるように言われた『/invite @ibmwatson_bot』をgeneralで発行して、挨拶を送りつけてみます。
最初、返事が返ってこなくてキーってなりましたが、@をつけて直接メッセージを送ることで返事がきました。こんな感じなんですね。
おわりに
やっと、目的のWatsonまで記事が進みました。Open Whiskを勝手に動かしてくれるので、WatsonとSlackとの接続は本当に簡単でした。ただこのままだと生のConversationで拡張性がないので、最後まで書いて、ちょっとだけリッチなアプリケーションを目指したいと思います。
今後の計画
- まずはnode-redをBluemixで立ち上げます。無料枠で。
- Slackをただ繋げてみます。
- IBM Watson ConversationをSlackから叩いてみます。
- node-redでSlackとConversationを接続してみます。
- Google Calendarに予定を投げて秘書に会議を設定してもらいます。