プログラムの事とか

お約束ですが「掲載内容は私個人の見解です」

Microsoft Bot Frameworkを使ってslackのボットを作ってみる直前までやってみる

Build2016 Keynote Day1 でMicrosoft Bot Frameworkっていうのが発表されたみたいですね。

今回はPREVIEW版のこれをつかってボット作ってみます。

といっても

docs.botframework.com

これをなぞるだけですが・・・

Visual Studioのテンプレートからボットを作成

必要なのはVisual Studio 2015 Update 1だそうです。

http://aka.ms/bf-bc-vstemplate

ここからzipファイルを落として

“%USERPROFILE%\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#"

に入れます。

これでVisual Studioで新しいプロジェクトを作ると

f:id:puni-o:20160401164230p:plain

Bot Applicationが追加されているのでこれを選びます。(どこに追加されたのかよくわからないのでbotで検索するといいと思います)

テンプレートで出来上がったプロジェクトはすでにボットとして動きます。

Controller\MessagesController.csを開くと

public async Task<Message> Post([FromBody]Message message)
{
    if (message.Type == "Message")
    {
        // calculate something for us to return
        int length = (message.Text ?? string.Empty).Length;

        // return our reply to the user
        return message.CreateReplyMessage($"You sent {length} characters");
    }
    else
    {
        return HandleSystemMessage(message);
    }
}

送られたテキストの長さを返すようになっていますね。

試してみる

ローカルで試せます。 テスト用アプリ(Bot Framework Emulator)というのがあります。

https://aka.ms/bf-bc-emulator

インストールしたら実行します。

続いて先ほどのプロジェクトをデバッグ実行します。 BotアプリはWeb APIなので実行するとブラウザが立ち上がると思います。 この時のURLはhttp://localhost:3978/固定みたいですね。

Bot Framework Emulatorも同じURLを見ていると思いますので、Emulatorからメッセージを入れてみます。

f:id:puni-o:20160401165223p:plain

TestっていれたらYou sent 4 charactersって返ってきましたね、ソース通りです。 右側のペインにはこのBot APIが返しているJSONが出ているみたいです。

発行

これでBotは完成なのでAzureに発行(公開(でぷろい))します。

登録

Microsoft Bot Frameworkに上で公開したBotを登録します。

Bot Framework

ユーザー登録とかした後Register a botで登録します。

必要事項を入力していきます。Endpointには先ほど公開したAzureのURLを入れます。

f:id:puni-o:20160401175045p:plain

httpsにしないとダメみたいです。

Registerボタンおせば何が足りないか教えてくれるのでその項目入れればいいんじゃない?

完成

f:id:puni-o:20160401175621p:plain

できました。

あとは右側のペインから追加したいChannelを増やしていきます。

追加の手順はAddをクリックすると細かく教えてくれるので迷うことは無いと思います。

f:id:puni-o:20160401175823p:plain

特に気を付けるところもないので後はがんばってください。