検索
特集

Slackでボットと対話してみよう特集: 新たなアプリ「ボット」の時代(2/4 ページ)

Microsoft Bot Frameworkを使用して作成したボットをAzureにデプロイ、Bot Connectorに登録し、最終的にSlackで対話を行う。

Share
Tweet
LINE
Hatena

Azureへのデプロイ

 作成したボットはAzure Web Appとして公開する。ここではAzureのポータルから新規リソースグループ/プランを選択して、Web Appを作成している。以下ではポイントを絞って簡単にデプロイの手順を見ていく。

Web Appの作成画面
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); 
});

エンドポイントはアプリのURLにpostメソッドで指定したパスを付加したものになる

 また、ここでは[継続的なデプロイ]の設定として[ローカル 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の設定

 後は「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]リンクをクリックすると実際のシークレットコードが表示される)。

App IdとApp Secret
App IdとApp Secret

 今の段階で必要となるのは[Primary app secret]だ。これらをAzureの[アプリケーション設定]で環境変数として設定しておく。本稿冒頭のコードではそれぞれ「process.env.appid」「process.env.appsecret」としてこれらにアクセスしていたので、環境変数名もこれらに合わせて「APPID」「APPSECRET」にしておこう(筆者が試したところでは設定しなくても動いているような気がするが、設定しておこう)。

環境変数の設定
環境変数の設定
環境変数APPIDとAPPSECRETを設定する(枠線内)。

 また、左下にはボットの動作を確認するためのテキストボックスがある。何かメッセージを入力して、[Send]ボタンをクリックすると、ボットからの返信かエラーメッセージが表示される。エラーメッセージが表示された場合には、設定を確認しよう。

ボットの動作確認ペーン
ボットの動作確認ペーン
メッセージを入力して[Send]ボタンをクリックし、想定通りのメッセージ(textプロパティの内容)が返送されていれば問題ない。

 これでBot Connectorへの登録は完了だ。次にチャンネルの設定を行う。ここではSlackにボットを接続してみる。

Copyright© Digital Advantage Corp. All Rights Reserved.

ページトップに戻る