はじめに
Azure では、Azure 上で Bot を作成から公開まで管理できる Azure Bot Servicesがあります。
そのチャネルの一つに、Azure Communication Servicesがあります。要は Azure Communication Services でスレッドを作成し、チャットを送信した際に Azure Bot Services から応答が返ってくるようなイメージです。
今回はその下記のチュートリアルを実施した際に注意点をメモ程度に記載します。
クイック スタート: ボットをチャット アプリに追加する
チュートリアルやってみた
まずはチュートリアルをそのままやってみると、なぜか Bot Services から応答が返ってこない。。。(EchoBot なので、”:Echo: Hello World” と返却されるはず)
Azure Bot Services の方も正常性が問題となり、スレッドがないと出る。
スレッドを早く閉じすぎたからかなと思い、下記のコードを一度消して見たところ、Azure Bot Services の正常性は治ったもののやはり Azure Bot Services から応答がない。。。
chatClient.DeleteChatThread(threadId);
原因
原因としては、chatThreadClient では定期的に GetMeesages メソッドでスレッド内のメッセージをポーリングして取得するのですが、Azure Bot Services からの応答が返ってくる前にアプリの処理が終わっていたことが原因でした。
なので、じょうきしょりのまえにスリーブ処理を入れてあげると、正常に Azure Bot Services から応答が返却されました。
Console.WriteLine("====Interval Sleep====");
Thread.Sleep(5000);
まとめ
当初はサーバー側のログを色々見ていても気付かず、ドキュメントにも明確に記載がなかったので意外と躓き記事にしました。chatThreadClient が GetMeesages メソッドを行うポーリング間隔を変更できるかどうかについては、分かり次第こちらの記事に追記します。