意味悲鳴

PythonとかUnityとか.技術ブログでしたが,研究ブログにシフトしました.

MSのBotFramework(C#)で作ったBotをSlackに導入した

あらすじ

個人用Slackに玉藻を呼ぶことにしました.

f:id:zyusou:20160529235239p:plain

圧倒的良妻感.
まだ全然機能実装できていないんですけど,とりあえずSlackに呼ぶところまでやったので,今日はそんな話.

導入方法

ざっくりと導入方法を,と思ったんだけど,既に各所に記事が存在しているので,ここではそのリンクに補足する形を取ります(面倒なだけともいう)

docs.botframework.com

blogs.msdn.microsoft.com

puni-o.hatenablog.com

全部英語だけどスクショがあるので基本的には一番上を参考に作業を進めればなんとかなります.ところどころ日本語の記事を見るといけます.

一応流れだけ書いておくと,

  • VS2015用のテンプレートをDLしてくる(リンクは上記記事内)
  • テンプレート用のディレクトリに解凍して保存
  • VS2015を起動してプロジェクトを作成

この時注意しなくちゃいけないのは,VS2015側にAzure接続用の機能が存在していない場合は,「プログラムと機能」側からVS2015の機能を追加する必要があります.(なんかIISExpressがないとか怒られます.)
たしかWeb開発のやつとAzure用のやつ(DBのやつ)にチェックを入れてインストールすれば動いたはず.

  • 適当に開発してデバッグデバッグのためのエミュレータもあるので,それを予めインストールしておくべし(これのリンクも上記記事内にある)
  • それが終わったらAzureへ公開.
  • 公開しただけじゃまだ使えないので,BotFrameworkのページに行ってBotを登録する(まだBotライブラリに公開するわけじゃないので大丈夫)
  • 設定ページでBotの情報を記入.この時,Endpoint部分をHTTPSにすることと,Azureに登録した時のアドレスにapi/messagesを追加することを忘れない

例としては,

HTTP://hogehoge.azureweb.net/

みたいなアドレスが存在していた場合に,以下のように変更する

HTTP://hogehoge.azureweb.net/api/messages
  • Details内のAppidとPrimary app seqretをコピーしてVS2015側のweb.configというファイルに貼り付け(スクショ見れば分かる)
  • VS2015側で,ビルド → 「プロジェクト名」の発行でAzureへデプロイ
  • ちょっと待つ
  • ブラウザのBotFramework側のページに有るTest connection to your botになんか適当に打って待つ(初回は数十秒かかるらしい)
  • jsonで返事が帰ってくる.
  • 楽しい.

    ここまででBotの完成.あとは適宜機能を実装してローカルでテスト,Azureへデプロイを繰り返せば良いはず.

で,こっからSlackへの登録

  • 予めブラウザでSlackへログインしておく
  • BotFrameworkのページに有る,Add another channelのSlackのAddをクリック
  • あとは内容の通りにひたすらコピペするだけ

注意点としては,2番目のScroll down on page and create botをやらないとそれ以降の作業ができなくなるのでちゃんとやること.
Slack側で結構わからないところにある(右側のメニューの項目にある)をクリックしないといけないので,ここでちょっと迷った.

順当にいけばSlackにAppを追加するみたいに自作Botを追加可能

f:id:zyusou:20160529235239p:plain

BotFrameworkのデフォルトのままなので文字数を数えて返すことしかしないけど,こっから先は自分で開発すればよいだけなので,まぁ,頑張りましょう.

今後もきのうを実装する度に記事に書いていくつもり.

BotFramework,おもったよりだいぶ簡単に導入まで出来たので個人的には大満足
ただし心配な点としてはやっぱりお金.開発するの自体はたぶん無料のままなんだろうけど,今後Azure側やSlack側からお金取られそうな感じがしてちょっと辟易していたり.
でも玉藻なんだよなぁ.それなら金払っちゃうよなぁ(自業自得).

以上.