Slackでボットと対話してみよう:特集: 新たなアプリ「ボット」の時代(2/4 ページ)
Microsoft Bot Frameworkを使用して作成したボットをAzureにデプロイ、Bot Connectorに登録し、最終的にSlackで対話を行う。
Azureへのデプロイ
作成したボットはAzure Web Appとして公開する。ここではAzureのポータルから新規リソースグループ/プランを選択して、Web Appを作成している。以下ではポイントを絞って簡単にデプロイの手順を見ていく。
アプリ名は「addrbookbot」とした。URLは「http://addrbookbot.azurewebsites.net」となるが、ボットへのアクセスに使用するエンドポイントはこれに「/api/messages」を付加したものとなる。エンドポイントのURLは、以下のようにrestifyでサーバを作成する際にpostメソッドで指定した内容に依存する(なお、このURLおよびエンドポイントは本稿公開時には既に削除済みとなっているので注意されたい)。
var server = restify.createServer();
server.post('/api/messages', bot.verifyBotFramework(), bot.listen());
server.listen(process.env.port || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});
また、ここでは[継続的なデプロイ]の設定として[ローカル Git リポジトリ]を選択している。つまり、ローカルなPCから「git push」コマンドでAzureにボットをデプロイする。同時にデプロイ時に使用するユーザー名とパスワードも設定している。実際に自分で試してみる際には、おのおの、適当なデプロイ設定を選択してほしい。
デプロイ先のURLは「https://ユーザー名@アプリ名.scm.azurewebsites.net:443/addrbookbot.git」のようになるので、「git remote add」コマンドを使用して、これにリモートリポジトリとして追加しておく。ここでは「git remote add azure 〜」として、「git push azure master」コマンドでAzureへのデプロイを行えるようにしている。
>git init
>git remote add azure https://ユーザー名@アプリ名.scm.azurewebsites.net:443/アプリ名.git
後は「git add」「git commit」「git push azure master」の各コマンドを実行して、Azureへのデプロイを行う。これで、Bot Connectorにボットを登録するための準備が整った。次にデプロイしたボットをBot Connectorに登録する。
Bot Connectorへの登録
ボットをBot Connectorに登録するにはBot Frameworkサイトで[Register a bot]リンクをクリックする。サインイン画面が表示されるので、ボットをデプロイしたAzureアカウントでサインインしよう。サインインすると、次のような画面が表示されるので、必要な事項を記入する。
必須の項目は以下のものだ。
- [Name]: アプリの名前
- [Description]: 簡単な説明
- [Endpoint]: エンドポイント。上述したエンドポイントのURLを入力する
- [Publisher]: 発行者
- [Bot Privacy URL]: プライバシーポリシーを記したページのURL
- [Publisher Email]: 発行者のメールアドレス。デフォルト値はサインインしたユーザーのアカウント
- [App Id]: アプリを識別するためのユニークなID。ユーザーが指定する(作成後の変更不可)
[Endpoint]欄には先ほど述べたようにAzureにデプロイしたアプリのURLに「/api/messages」を付加したものを指定する(例:http://addrbookbot.azurewebsites.net/api/messages)。[Bot Privacy URL]欄には、今回はサンプルということで、アプリのURLをそのまま指定しているが、きちんとボットを作成するのであれば、それなりのページを作成するようにしよう。その他の項目も適宜設定を行い、[Register]ボタンをクリックすると、ボットが登録され、画面が次のようになる。
画面の左上には、先ほど指定したApp Idに加えて、2つのApp Secretが表示されている([Show]リンクをクリックすると実際のシークレットコードが表示される)。
今の段階で必要となるのは[Primary app secret]だ。これらをAzureの[アプリケーション設定]で環境変数として設定しておく。本稿冒頭のコードではそれぞれ「process.env.appid」「process.env.appsecret」としてこれらにアクセスしていたので、環境変数名もこれらに合わせて「APPID」「APPSECRET」にしておこう(筆者が試したところでは設定しなくても動いているような気がするが、設定しておこう)。
また、左下にはボットの動作を確認するためのテキストボックスがある。何かメッセージを入力して、[Send]ボタンをクリックすると、ボットからの返信かエラーメッセージが表示される。エラーメッセージが表示された場合には、設定を確認しよう。
これでBot Connectorへの登録は完了だ。次にチャンネルの設定を行う。ここではSlackにボットを接続してみる。
Copyright© Digital Advantage Corp. All Rights Reserved.