CLOSE

Azure Bot Services を使って Teams bot を開発する(全1記事)

ちょまど氏が解説する、Azure Bot ServicesでTeams botを開発するための3ステップ

2020年6月17日~7月17日にかけて、ITに携わる全てのエンジニアを対象にしたMicrosoft主催の大規模Techカンファレンス「de:code」が開催されました。セッション「Azure Bot Services を使って Teams bot を開発する」では、マイクロソフト コーポレーション クラウド アドボケートの千代田まどか(ちょまど)氏が登壇し、Azure Bot ServicesでTeams botを開発するための詳細な手順を3つのステップに分けて解説しました。

Azure Bot ServicesでTeams botを開発

千代田まどか氏:みなさま、こんにちは。Microsoftの千代田まどかです。Twitterはちょまどです。今日は「Azure Bot Servicesを使ってTeams botを開発する」というセッションを行います。

実はみなさまにお伝えしたいことがあり過ぎて、お時間が30分ぐらいしかないのにスライドが95枚になってしまいました。なのでサクサクいこうと思います。

このセッションでお話しすることです。まずはVisual StudioでTeams botを開発します。Visual Studioで開発してどこで動くかといったら、当然Teamsで動いています。botの本体自体はAzure上にデプロイしてあります。

本セッションは、Microsoft Teamsで動くbotを作ってみたい開発者の方向けの入門セッションです。例えば「Teamsを導入するのでbotを作ってみたいけど作り方がわからない」とか「社内のQ&Abotなどを作ることになったけどはじめの一歩がわからない」といった方に対して、Teamsで動くbot開発の仕方の全体像をざっくり理解するように、もしくははじめの一歩を理解することがゴールという内容のセッションを行います。

アジェンダです。まず「Chat bot(対話ボット)とは?」というお話をしたあと、bot作成のためのMicrosoftのサービスやツールのご紹介をします。そのあと、Azure Bot Servicesを使ったTeams botの作成についての詳細な手順をお見せいたします。そのあとは、Azure App Service Editorを使ったすべてWebブラウザ上で完結する簡単なbot作成の方法について手順書をお見せいたします。

Chat botの全体像

まずは、Chat botとはという説明を行います。人間とbotがこうやって相互に会話していますね。例えば私が「明日13時から1時間A会議室を押さえて」と言ったら、bot君が「会議名は何ですか?」と聞きます。「マイクロソフトクリーム試食会で会議を取ってください」と言うと、「明日13時から1時間、マイクロソフトクリーム試食会でA会議室予約しました」と返ってきてくれます。

人間はスマホやパソコンなどいろいろなクライアントからアクセスしていますね。チャネルとしては、例えば今回はTeamsを使いますが、AlexaやLINE、Slackなどいろいろなサービスを経由してこのチャットが動いていますね。

bot自体はどこに載っているかというと、例えばAzureの場合はAzure Bot Servicesを使ってbotが動いています。だいたいbotはほかのサービスに連携していて、この例の会議室予約だとMicrosoft GraphやMicrosoft 365と相互にやりとりしています。もしくは、自然言語処理や翻訳、画像解析などをやりたい場合は、Cognitive Servicesを使えばいいし、社内システムと連携するサービスだったら社内システムとも当然接続して相互にやりとりしていますね。これがChat botの全体像です。

bot作成のためのMicrosoftサービスとツール

Chat botの話が終わったので、次はbot作成のためのMicrosoftのサービスやツールのご紹介に入ります。bot開発の総合環境のAzure Bot Servicesと、高性能なbotを作るためのSDKのBot Framework SDKについて触れます。

Azure Bot Servicesとは、一言で言うとbot開発の統合環境です。botアプリ開発用のSDKを用意していてくれて、それをもとに開発し、Azure上にホストしてTeamsやSkype、Slack、LINEなどの接続まで面倒を見てくれるサービスです。

Azure Bot Servicesなので、いろいろなサービスをまとめてこう総称するわけですが、具体的にどんなサービスが含まれているかと言うと、エンドポイントなどを定義するBotチャンネル登録、Bot開発用のSDKであるBot Framework SDK、botとチャネルの間でメッセージやイベントを送受信するBot Framework Servicesなどなどがあります。

そのメッセージというのは、例えば「こんにちは」とかですね。イベントは「ちょまどさんがいいねしました」とか複数人のグループチャットの場合「〇〇さんが入室してきました」というのが全部イベントです。

次はBot Frameworkです。Bot Frameworkとは、Microsoftが開発している対話型UIを持つbotアプリ作成のためのフレームワークです。SDKはオープンソースで開発中です。2016年にバージョン1.0が公開され、現在はバージョン4.9が最新です。対応言語はC#、JavaScript、Python、そしてプレビュー版ですがJavaもあります。

Azure Bot Servicesを使ったTeams bot作成の3ステップ

次は詳細な手順です。Azure Bot Servicesを使ったTeams bot作成の詳細な手順についてお話しします。ステップを3つに分けて、それぞれ見ていきましょう。

ステップ1ではローカルで実行。Web bot自体はローカルで実行なんですが、クライアントがエミュレーターで実行する場合。

次が、botはローカルで実行されたままですが、クライアントがエミュレーターからTeamsになっています。

最終的にどうなるかと言うと、クラウドで実行されたbotに対してTeamsから接続。これがゴールですね。

それぞれのステップごとにアーキテクチャ図を見てみましょう。

まずステップ1、ローカル実行時エミュレーターから接続です。これが私のローカルの開発環境パソコンですね。エミュレーターとローカルサーバーがあります。ローカルサーバーはVisual Studioから実行しています。

例えばBot Framework Emulatorから「こんにちは」とやると、すでにローカルサーバーにbotが載ってるんですけどbotが返してくれて、(゚▽゚ っ)З(ちょまぎょ)が「こんにちは」と言っているように返す。エミュレーターに「(゚▽゚ っ)Зこんにちは」と出る。これで終了ですね。

これはすごく簡単です。なぜ簡単かと言うと、すべて私のパソコンのローカル環境内で完結しているので、とくにクライアントからサーバーへの認証もなく、なにごともなくこれで完結しています。まずはこのステップ1ですね。

ローカルサーバーにTeamsから接続する場合

次ステップ2、突然画面がにぎやかになりましたね。登場人物が増えました。なぜかと言うと、クライアントがエミュレーターからTeamsに変わったからです。Teamsとローカルサーバーが直接やりとりすることはできません。この外を通ってぐるっと回っていくことになります。

具体的に見てみましょう。まずTeamsが「こんにちは」と送ると、このインターネットの世界にいきます。Microsoftの管理するOffice系やBot Framework Serviceのサーバーにいくわけですね。

このBot Framework Serviceとは何だったか。これはチャネルとbotの間でメッセージやイベントの送受信をしてくれるサービスですね。そこに行くわけです。

これが「エンドポイントどこかな?」と問い合わせます。どこに問い合わせるかと言うと、私のAzureの環境上にデプロイしてあるBotチャンネル登録です。「エンドポイントどこかな?」と言うと、私が登録しているエンドポイントを返してくれます。例えば、「なんたら.ngrok.io/ api / messagesやで」と言ってくれます。

「なるほど、じゃあこのURL叩いてレスポンス待ってみるね」ということで、このngrokのエンドポイントをポストで叩くわけですね。それで、「Teamsからこんにちはと来たで」と私のローカルサーバーに問い合わせるわけです。

それで「(゚▽゚ っ)З こんにちは」と返してと言って、それがそのまま「(゚▽゚ っ)Зこんにちは」とTeamsに表示されるという感じです。

ngrokと書いてあるのは、例えばここに線引きがあって、こっちがローカル開発環境、こっちがクラウドなわけですが、インターネット上から私のローカルで動いているサーバーにどうやってアクセスするかと言うと、ngrokというトンネリングのツールを使って私のローカルサーバーにアクセスしているわけですね。このngrokの設定の仕方などものちのちご紹介します。

とりあえず、これがローカルサーバーで動いているbotに対してTeamsをクライアントとして動くときのアーキテクチャ図です。これは開発するのにはすごくいいんですが、もちろん運用時はこのままではいけません。

なぜかと言うと、このままでは私がパソコンを閉じたらこのローカルサーバーが眠ってしまってTeamsでbotが反応しなくなってしまうので、今ローカルのサーバーで動いているbotをクラウドなど安定してbotが動く環境にデプロイしなければなりません。それが次のステップです。

クラウド実行時にはどうなるか

次ステップ3、クラウド実行時(Teamsから接続)ですね。先ほどのアーキテクチャ図にあったローカルサーバーが消えています。どこにあるかと言うと、クラウド上に置くことになります。

ということで、Visual StudioからAzureにbotアプリをデプロイします。どこにデプロイするかというとAzure上にある私のbotサーバーです。具体的に言うと、Azure App Serviceの中でWeb Appsにデプロイします。

このAzure App Serviceはなにの上で動いているかと言うと、App Service Planと呼ばれるリソースの上で動いています。このApp Service Planはアプリの動く物理サーバーみたいなものです。今回は無料版を使いますが、もし有料版を使ったらスペックつよつよマシンで動かせるという補足もしておきます。

無料版と有料版の違いは、コア数はいくつ、メモリ何ギガなど本当にいろいろあります。無料版だと雑居サーバーの中で動くので少しレスポンスが遅かったりはしますが、なんと言っても無料なので、今回は無料版を使います。

これはbotが動いています。実際に動きを見てみましょう。まずTeamsから「こんにちは」とMicrosoftが管理しているサーバー群に問い合わせます。先ほどと一緒ですね。また「エンドポイントはどこかな?」とBotチャンネル登録に問い合わせます。

エンドポイントを返します。「azurewebsites.net/ ……」、先ほどはngrokだったんですが、この私のbotのサーバーはAzure上にデプロイしたのでURLが変わっていますね。azurewebsites.netとなっています。で、エンドポイントのURLが返ってきます。

それをそのまま叩きますね。「Teamsからこんにちはって来たでー」とポストにリクエスト送って、レスポンスがbotがいろいろ処理した結果「(゚▽゚ っ)Зこんにちは」と返してと言います。それを「こんにちは」と返してTeamsで表示されるという感じになります。これが全体図です。これがゴールですね。

エミュレーターから接続する場合の手順

では、いろいろ見ていきましょう。まずはステップ1から。ローカル実行(エミュレーターから接続)についてのお話をします。

まず最初にVisual Studio2019にBot Framework用のテンプレートを入れます。Visual Studioを起動したときに、この「コードなし」で続行をクリックします。

するとプロジェクトが開かないまま起動するので、このまま拡張機能の管理を選択します。

次にオンラインのところの検索結果のところで「bot」とやると、これが上のほうに出てくるので、このBot Framework V4 SDK Templates For Visual Studioを選択しダウンロードします。

下にアラートが出ているように、今ダウンロードした拡張機能はVisual Studioの次回起動時に適用されるのでそのまま再起動します。

再起動して上がってきたVisual Studioです。新たに落としてきたBot Framework用のテンプレートでプロジェクトを新規作成したいので、まずは新しいプロジェクトの作成を選択します。

テンプレートがいっぱいあるので、これを絞り込むために「bot」と検索バーに打ち込むといろいろ出てきます。この新規プロジェクトのテンプレートはEcho BotかBot Framework V4を選択します。そして次へを押します。

まずはWebアプリがちゃんと起動するか確認したいので、なにもコードは変更せず、なにも考えず、この実行ボタンを押しましょう。

ちなみに、この実行ボタンに書いているIIS ExpressというのはWindows用の簡易Webサーバーですね。IISはInternet Information Servicesの略です。さらに、Expressが書いてあるので簡易版の開発用のものという感じですね。

すると、Visual Studioで実行が走っているとWebブラウザが立ち上がって「Your bot is ready!」と書いてあるWebアプリが立ち上がります。

はい。おめでとうございます。これであなたの開発環境は整っているということで、次にいきましょう。

クライアントのエミュレーターを取得

これでサーバー側はOKなので、次はクライアントのエミュレーターをゲットする方法を見ていきましょう。

はい、Bot Framework Emulator。Bot Framework SDKのテストやデバッグ用のデスクトップアプリのエミュレーターですね。どこでゲットできるかって言うと、GithubでBot Framework SDKもBot Framework EmulatorもGithub上でオープンソースで開発されているので、このレポジトリにアクセスしてこのreleasesを見ましょう。

その中にいろいろなプラットフォーム用のものがあるので、例えばWindowsだったらこのwindows-setup.exeをダウンロードして実行してみましょう。起動するとこのような画面になります。

Open Botをクリックすると設定画面が開かれてきます。例えば「エンドポイントはどこですか?」とか入れる欄が出てきます。

エンドポイントをゲットするために、このWebアプリが立ちあがったときにURLをコピーしておいてください。例えばこの場合、localhost:ポート番号3978というのがあるのでこれをコピーします。

Bot Framework Emulatorでエンドポイントはどこかというのを入れる欄があるので、ここにコピーしたものを入れます。先ほどコピペしたURLに/api/messagesを足したものを入れてください。今回はローカルですべて完結していて認証などがいらないので、今回はMicrosoft App IDやパスワードは空で大丈夫です。それでConnectを押します。

すると、このLive Chatのページでテストができます。Visual Studioでウェブサーバーがまだ実行中であることを確認してから、このチャット画面になにか打ち込んでみましょう。自分の言ったことが「Echo: 」でなにか返ってきたら成功です。ちゃんと動いています。

例えば「ちょまどだよ」と言ったら「Echo:ちょまどだよ」と返ってきます。これでOKです。正しく動いています。

ということで、エミュレーターで実行して、Visual Studioで動いて、実行してローカルサーバーとのやりとりができました。

Teamsからつなぐ場合の手順

次は、Teamsからつなぐ場合ですね。次の目標は、このステップ2のTeamsから一気に新しい登場人物としてAzureやBotチャンネル登録が出てきたり、このあたりの認証などがあって、ここにIDやパスワードが必要なので、これらをどうやってゲットするのか。あとはngrokどうやって使うのかなどを中心に見てみましょう。

まずはTeamsにつなげるものでAzureのポータルをまず開いてください。Azureの設定からいきましょうか。portal.azure.comです。

Azureのポータルが開いたら新しいリソースを作りましょう。Bot Channels Registrationを作ります。これは日本語だとボットチャンネル登録と呼ばれるんですが、これはbotのエンドポイントやbotのチャンネル、どのサービスやTeamsにつなぐかといった設定をしてくれる人の設定や、その他botの各種設定を登録しておく場所ですね。これを作ります。

ちなみにチャネルというのは、今回Teamsを使いますが、これがBot Channels Registrationが対応しているチャネル一覧になりますね。

作成を押します。AzureのBot Channels Registration作成。すると、このように設定でいろいろ入れなさいという欄があるので、適当に入れていきます。例えば名前をどうするとかですね。あと価格レベルがフリーF0があるので、今回は無料版を使います。そして作成を押します。

リソースがデプロイされるとこのような画面になりますね。Botチャンネル登録と書いてあります。

次はTeamsにつなげる。Azureにエンドポイントを知らせましょう。エンドポイントというのは、私の作ったbotのサーバーのAPIに対して、何というURLでアクセスしたらそれが叩けるのかというものです。

まずは、Bot Channels Registrationの設定をクリックしましょう。そこでエンドポイントを入れる欄があるんですけど、これどうやってゲットするか。そもそも私のローカルで動いているサーバーにどうやってインターネット上からアクセスするかと言うと、先ほどアーキテクチャ図でご説明したngrokを使うことになります。

ということで、ターミナルでngrokを叩きましょう。ngrokでポート番3978だったので、localhost:3978でトンネリングするというコマンド打ちますと、こんな感じになります。今回使うのは、このhttpsのほうで発行されているURLを使います。

これをこちらに載せます。こちらに、プラス/api/messagesを付けたものを入れます。これがエンドポイントになります。保存をします。

Azureとの接続情報をメモ

次にAzureとの接続情報をメモするフェーズに入ります。リソースグループに戻って、デプロイを選択します。するとこのような画面になります。入力を押します。

するといろいろな接続情報みたいなものがあるので、この中のappIdとappSecretを選択します。

ちなみにappIdというのはMicrosoftアプリIDとも言うんですけれども、AzureADが管理しているアプリ一覧にそれぞれに振られる任意の識別子がappIdですね。この2つをコピーしておきます。

次は、AzureからローカルのVisual Studioに戻ってきます。ローカルのWebサーバーにAzureとの接続情報を教えるフェーズに入ります。まずはプロジェクトを右クリックして、このユーザーシークレットの管理を選択します。

するとsecret.jsonという空のjsonファイルが生えます。これはローカルでの開発用の秘密の情報、API keyや接続文字列などを記録しておく場所です。なので、ここで先ほどコピーしてきたMicrosoftAppIdとAppPasswordをコピーして貼り付けておきましょう。

Azureとの接続をテスト

次は、認証情報をローカルのWebサーバーに持たせたので、Azureとちゃんとつながっているかテストしてみましょう。このBotチャンネル登録ページのWebチャットでテストを押すと、こんな感じでWebチャットのテスト画面が出てきます。

そこで適当に例えば「Azure上のweb chatからこんにちは!」と送ると、「Echo: Azure上のweb chatからこんにちは!」と返ってきます。ちゃんと動いていますね。

さらに、このngrokのアウトプットの画面で、「こんにちは」と打つと「200 OK」が返ってきているので、ngrokちゃんと経由してローカルのサーバー叩いてるんだなということが確認できます。

先ほどは、ローカルのWebサーバーとAzureがつながっているかのテストをWebチャットで確認しました。次は、Bot Framework Emulatorで確認しましょう。さらに言うと、少しコードを変えてみてちゃんと反映されるかの確認もしてみましょう。

このユーザーの対話部分のコードを多少変えてみます。先ほど「Echo: 」とあったのを「(゚▽゚ っ)З(ちょまぎょ)」に変えてみました。コード編集後、これで実行ボタン押して、再度実行しなおしてWebサーバーを立ち上げます。これでコードが更新されたはずです。

次、Bot Framework Emulatorは、先ほどはAzureの中でのWebチャットだったのでよかったんですが、今回はローカルのBot Framework Emulatorからやるので、ちゃんと認証情報を通す必要があります。ここにコピーしてきたApp IDやApp Passwordを記載してSave and connectを押してください。

そうすると、ちゃんとBot Framework Emulatorが動いていることがわかります。(゚▽゚ っ)З(ちょまぎょ)がちゃんと表示されていて、「おお、最初の文字が更新されてる!」と言ったら、「(゚▽゚ っ)З:おお、最初の文字が更新されてる!」と言っていますね。ということで、ちゃんと更新されていることがわかります。

Teamsで動かしてみる

次はいよいよTeamsで動かしてみましょう。まずはTeamsをつなげるんですが、最初はAzure側の設定からいってみましょう。このBotチャンネル登録のチャネルからTeamsのアイコンをクリックします。保存を押します。

Azureが終わったので、次はローカルでの設定ファイルを書き上げましょう。このローカルの設定ファイルというのはmanifest.jsonなんですが、具体的になにが書いてあるかと言うと、アプリ名は何ですか? 作者は誰ですか? 言語は日本語です、アプリ説明文は何ですか? というのを公式ドキュメントを見ながら書き上げていってください。いっぱいパラメータがあるのでドキュメントを見ながら書いたほうがいいです。

これが今書いたmanifest.jsonですね。プラスアイコン画像、32×32と192×192のアイコン、これを3つまとめてZipで固めます。

次は、Teamsにカスタムアプリとして設定するんですが、このTeamsのアプリからカスタムアプリをアップロードをクリックします。

それで先ほど作ったZipファイルをアップロードします。このような画面になりますので、これでAddを押します。

すると、ちゃんとTeamsで動いているのがわかりますね。「こんにちはちょまどさん」と言ったら、ちょまぎょが「こんにちはちょまどさん」と言ってくれます。

次はコードを編集してちゃんとTeamsにも反映されるか確認してみましょう。ということで、コードでちょっとハートをつけてみました。それでWebサーバーを再度立ち上げてみます。するとちゃんとTeamsにも、コードを編集して再実行したらTeamsで更新されるのを確認しました。ハートが増えましたね。

ということでTeamsから接続が終わりました。長かった。こんな感じでいってましたね。こうじゃなくて、ぐるっと回る感じでしたね。

AzureでWeb Appを作成

次は、このローカルで動いているサーバーをクラウド上で動くようにするにはどうしたらいいかについてお話しします。新しく増えたものとしてAzureのWeb AppとApp Service Planが増えましたね。

まずはAzureでWeb App、botの載る器を作成することになります。リソースグループで追加ボタンを押します。

Web Appで検索するとこれが出てくるので、作成を押します。

すると、いろいろな設定画面があるので一個一個入れていきます。

このサイズのところは、App Serviceプランというのがアーキテクチャ図でご説明したとおりアプリが載る物理サーバーみたいな概念なんですが、これも無料版があるのでちゃんと無料版を今回は選びます。

サイズを変更します。するとこのF1というのが選べます。共有インフラストラクチャーで無料と書いてあるこれを選択して適用。

もちろんこれは開発用だから無料版を選んでいます。もし実運用をするとなるとこれでは負荷がつらいので、運用タブを選んでスタンダードなどちゃんとしたスペックのものを選んでください。

デプロイが終わるとこのような画面になります。App Serviceが立ち上がっていますね。

Visual StudioからAzureにデプロイ

Azure側のbotを載せるための器ができあがったので、次はローカルのVisual Studioのターンですね。ローカルのVisual StudioからAzureにデプロイをすることになります。

まずはこのプロジェクトを右クリックで、発行を押します。

するとこのような画面になります。App ServiceのWeb Appにデプロイするので、既存のものを選択をします。

Azureにログインした状態だとデプロイ先が選べるので、先ほどAzureのポータルで作ったものを選択してOKを押します。そして、発行を押します。

すると、この.azurewebsites.netのドメインのURLでWebアプリが立ち上がります。「Your bot is ready!」と書いてありますね。

Azure上の設定

次、またAzure上の設定です。次はアプリ設定にApp IDなどを教えてあげることになります。認証について。さっきまでbotのサーバーがローカルで動いていたんですが、そこからAzure上に動いたのでまた設定ファイルをどうにかすることになります。

App Serviceの構成で新しいアプリケーション設定をクリックします。

ここに各種環境変数を入れることになりますね。コピペです。アプリ設定にApp IDを教えてあげるということで、Visual StudioのMicrosoftAppIdなどをコピペします。

「なんで? これで書いたからもういいじゃん」と思うかもしれないんですが、これはローカルの私のパソコンに保存されている設定ファイルなので、これはローカル実行時しか参照されないファイルだしセキュアに作られています。

なので、今回botがクラウド上にムーブしたので、やはり接続設定とかもそちらに再度書く必要があります。ということでこういうことをしています。そして、保存します。

App Passwordのほうも同じように項目を足してください。Passwordをここからコピペして、OKです。保存を押します。

次は、接続先のエンドポイントのURLを変更します。Botチャンネル登録の設定のページで、このエンドポイントが先ほどはbngrokだったのがazurewebsites.netになっていますね。これ変更したら保存を押します。

Teamsでテストします。接続先がAzureに切り替わってもちゃんと動いているのを確認できます。先ほどBotチャンネル登録でエンドポイントを変えたのでちゃんとAzureを向いているはずなので。

ということでこれがすべて終わりました。ステップ3完了です。すごく手順が長かったので、あとから見返せるようにすべてブログにまとめました。ぜひご覧ください。すごく長くなったので5回に分けています。

Webブラウザ上で完結する簡単なbot作成の方法

このApp Service Editorを使ったすべてWebブラウザ上で完結する簡単なbot作成の方法もあるので、一応ご紹介します。

Azureを使ったTeams botの作り方は大きく分けて2パターンあって、1個が簡単でもう1個が本格的な方法です。先ほどまでのものは本格的で、開発環境はローカルでbotはクラウドで動いています。一方、開発からデプロイまですべてWebブラウザ上で完結する簡単な方法もあるのでご紹介します。

これは開発環境がなくてもコードをオンラインエディタで編集できるというやり方ですね。超簡単だけどデバッグはしづらい。

まずApp Service(Web App)のリソースに移動します。

この中にApp Service Editorというのがあるのでそれをクリックします。ちなみに英語UIをお使いの方はこんな感じで書いてありますね。

こんな画面になります。

Webブラウザの新しいタブでこのオンラインエディタが開きます。

このBots.csの中でいろいろbotの本体のコードが書いてあります。このままオンラインでbotのコードを直接編集することができます。

今回デフォルトではEcho: となっているので、オンラインで直接編集してみました。(゚▽゚ っ)З(ちょまぎょ)にしてみました。

ということで、アプリのコードをブラウザ上で直接編集できるApp Service Editorでコードを編集しました。

そのあと、ちょっとビルドしてみたいですね。build.cmdというのがあって、中でdeploy.cmdも呼んでるので、これを叩けばよさそうですね。

ということでコンソールをこれで開くことができます。build.cmdを叩いて実行します。

動いていて、Webチャットでテストをすると変更が反映されてちゃんと動いていることがわかります。これが簡単なやり方ですね。

このようにオンラインでbotのコードを直接編集できてテスト実行もできます。ただ、このオンラインエディタは、App Service Editorはすごく簡単なんですがデバッグはしづらいので、複雑なbot開発の場合はローカルでVisual Studioを使って開発したほうがいいです。先ほどまで説明していたやり方ですね。開発はローカルで運用はクラウドのかたちがいいです。

今回お見せしたオンラインエディターを使った簡単なbot作成手順もブログにまとめてあるのでぜひご覧ください。

セッションのまとめ

ということでまとめに入ります。Teamsで動かしました。Visual Studioで開発。クラウドAzureでbotをホストしています。ngrokを使ってAzureからローカルを叩くこともしました。

まとめとして、bot開発の統合環境のAzure Bot Servicesをご紹介しました。Botチャンネル登録やBot Framework SDK、Bot Framework Servicesについてもご説明しましたね。

記事もいろいろ書いたので、今回お見せしたローカルでデバッグしながら作るTeams botの開発方法の手順書は、記事に詳しくまとめました。長くなったので5個に分けてあります。これは第1回目の記事のURLです。

また、最後にご紹介した全部Webブラウザ上で完結する簡易版の手順書についてもブログにまとめましたのでぜひご覧ください。

これがまとめの最後ですね。最初がローカルのサーバーにVisual Studioから実行して、ここからエミュレーターでやり取りしてテストで実行しました。それが終わったらクラウドでホストしようとしてAzureにbotアプリをデプロイしました。デプロイ先はAzureのApp Serviceの中のWebAppでしたね。

Azureの中にはBotチャンネル登録でエンドポイントの設定などを持たせました。開発はVisualStudio。こんな感じの話をしました。

Microsoft Learnおすすめコンテンツもあるので、Teamsでアプリ、ボット、およびコネクタを管理するモジュールもあるので、こちらもぜひおすすめです。公式ドキュメント集は今回の参考記事もいくつかあるのでこちらもご紹介しておきます。

ということで、私のお話は以上です。ご清聴ありがとうございました。

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
著者フォローや記事の保存機能など、便利な機能がご利用いただけます。

無料会員登録

会員の方はこちら

関連タグ:

この記事のスピーカー

同じログの記事

コミュニティ情報

Brand Topics

Brand Topics

  • 大変な現場作業も「動画を撮るだけ」で一瞬で完了 労働者不足のインフラ管理を変える、急成長スタートアップの挑戦 

人気の記事

新着イベント

ログミーBusinessに
記事掲載しませんか?

イベント・インタビュー・対談 etc.

“編集しない編集”で、
スピーカーの「意図をそのまま」お届け!