1月とちょっと遅れですが、BUILD 2016 でアナウンスされたBot Framework を使ってみました。
※ 2016/11/19 追記
Azure Bot Services を試したブログはこちら
Bot Framework v3 を試したブログはこちら
■Microsoft Bot Framework
https://dev.botframework.com/
ひとまず、今回の成果物
と言っても、サンプルのままの入力された言葉を発言数をくっつけて、オウム返しするだけですけど。。。
Bot Framework の概要
概要は、以下のサイトをご覧ください。
http://docs.botframework.com/#navtitle
ざっくり書くと、Web Chat 意外にも、Skype、Slack、FaceBook、Office 365 との接続するコネクタが準備されているのと、SDK として C# と Node.js が現在のBot Framework では提供されています。
今回のサンプルは C# で作成しています。
作成したAPIは、Microsoft Azure の API App にデプロイしています。
C# での開発準備
詳細な手順は、以下のサイトをご覧ください。
http://docs.botframework.com/connector/getstarted/#getting-started-in-net
アプリを動かすまでの全体的な作業の流れは、こちらのサイトを参考にするといいかも。
https://blogs.msdn.microsoft.com/bluesky/2016/04/01/build2016-microsoft-bot-framework/
ざっくり言うと、下記の2つくらいです。
- Visual Studio 2015 をインストール
- プロジェクトテンプレートをダウンロードして、VS のテンプレートフォルダに入れる。
あとやったことは、Nuget から、Microsoft.Bot.Connect を最新版の1.1.0 に変えたくらいかな。
C# でBot 作成
今回は、VSを開き、”Bot Application”というテンプレートを開いたくらいです。
そのままデバッグ実行をして、Microsoft Bot Framework Emulator で動作確認してもいいかも。
※ 「Microsoft Bot Framework Emulator」の画面下にテキスト入力エリアがあることに30分くらい気づかず、どうやってメッセージを飛ばすんだろうって悩んじゃいました。。。
Bot の登録
ローカルで遊ぶ分には、以降の作業は不要ですが色んなサービスとつなげて遊びたいですよねー。
今回は、作成したAPI を Microsoft Azure にデプロイし、その URL を Bot Framework の管理画面で登録しました。
登録すると接続用の App ID と App Secret が払い出しされますので、Web.config に設定し、再度 Azure にデプロイする感じです。
※ Microsoft Azure のサブスクリプションを持ってない方は、無料評価版を使用しましょう。
https://azure.microsoft.com/ja-jp/pricing/free-trial/
Azure へのデプロイは、VSからなので簡単ですね。
プロジェクトを選んで、右クリックメニューから「公開」を選択。
Microsoft Azure App Service を選択
Azure のサブスクリプションを持っているMSアカウントの資格情報を入力後、デプロイするApp Service を選択。新規作成ボタンから、新規作成もできますね。
続いて、Bot の登録です。
以下の、サイトで登録をします。
https://dev.botframework.com/bots/new
*がついてるところは、必須項目なので適当な値を設定してください。
App ID以外は、後からの変更もできますので。
注意点は、Endpoint の URL です。
https にしましょう。
設定するURLは以下のような形
https://(api appのサイトURL)/api/messages
※ VS でデプロイした時に初期表示されるのは「http://(api appのサイトURL)」で、それをそのまま設定してたのでハマってしまいました。
登録後は、Web.config に App IDとApp Secret を登録して再デプロイします。
Microsoft Bot Framework Emulator で、動作確認することができます。
とっても簡単なので、皆さんも使ってみて、なんか面白い使い道を考えましょう!!
コメント