今回は Teams Bot をローカルの Visual Studio でデバッグする方法をご案内いたします。といってもTeamsに限った話ではないのですが…。 まず、Azure で Web App Bot を作成します。今回はv3のBasic C#(おうむ返しをする)テンプレートにしました。作成できましたら [ZIP ファイルをダウンロード] からソースコードをダウンロードします。
ZIPファイルですので任意のフォルダに展開し、 sln ファイルを開きます。

また、[アプリケーション設定]にある AzureWebJobsStorage の値をコピーします(赤い丸の部分をクリックすると値が見れます)
ちなみに AppID とAppPassword(青い部分)も利用しますので、コピーを忘れた人はこちらもコピーしておきます。

Visual Studioで web.config を開き、3つの値を入力します。 MicrosoftAppID と MicrosoftPassword は最初からありますが、Valueは未記入ですので入力します。
AzureWebJobsStorageはキーがありませんので、タグから入力します。
とりあえずこの状態で実行してみましょう。メニューの下にあるIIS Express(Microsoft Edge) をクリックしてデバッグ開始します(ブラウザ名など違う場合がありますが)。
起動すると以下のようにブラウザが起動します。 localhost のポート番号が表示されます。こちらは後ほど利用します。

次にブラウザを起動して、ngrokのサイト <https://ngrok.com/> にアクセスします。まずはサインアップをクリックし、必要な項目を入力しましょう。
次に実行ファイルをダウンロードし、左メニューのAuth をクリックします。

認証コードが出てきますのでこれをコピーします。

コマンドプロンプトから以下のコマンドを実行します。

成功すると以下のように表示されます。

最後に Azure ポータルに戻り、エンドポイントを ngrok で表示されたものに変更します。

これでリクエストをローカルに送ることができるようになりました。試しに 「Webチャットでテスト」でメッセージを送ってみましょう。

ローカルでメッセージを受け取っていることが分かります。
もちろん Teams でメッセージをやり取りすることも可能です。
Visual Studioでブレークポイントを貼ればそこで止めることができます。