エミュレーターを使用したデバッグDebug with the emulator

Bot Framework Emulator は、ローカルでもリモートでも、ボットをテストし、デバッグできるデスクトップ アプリケーションです。The Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots, either locally or remotely. このエミュレーターを使用し、ボットとチャットしたり、ボットが送受信するメッセージを検査したりできます。Using the emulator, you can chat with your bot and inspect the messages that your bot sends and receives. このエミュレーターでは、Web チャット UI に表示されるときと同じようにメッセージが表示され、ボットとメッセージを交換するときの JSON の要求と応答がログに記録されます。The emulator displays messages as they would appear in a web chat UI and logs JSON requests and responses as you exchange messages with your bot. 自分のボットをクラウドにデプロイする前に、エミュレーターを使用してローカルで実行し、テストしてください。Before you deploy your bot to the cloud, run it locally and test it using the emulator. まだ Azure Bot Service で作成していない場合でも、何らかのチャネルで実行するように構成していない場合でも、エミュレーターを使用して自分のボットをテストできます。You can test your bot using the emulator even if you have not yet created it with Azure Bot Service or configured it to run on any channels.

前提条件Prerequisites

ボットをローカルで実行するRun a bot locally

ボットを Bot Framework Emulator に接続する前に、ボットをローカルで実行する必要があります。Before connecting your bot to the Bot Framework Emulator, you need to run your bot locally. ボットを実行するには、Visual Studio または Visual Studio Code を使用するか、コマンド ラインを使用できます。You can use Visual Studio or Visual Studio Code to run your bot, or use command line. コマンド ラインを使用してボットを実行するには、次の操作を行います。To run a bot using command line, do the following:

  • コマンド プロンプトにアクセスし、ボットのプロジェクト ディレクトリに移動します。Go to the command prompt and change directory to your bot project directory.

  • 次のコマンドを実行して、ボットを起動します。Start the bot by running the following command:

    dotnet run
    
  • 次の記述の前の行のポート番号をコピーします: Application started.Press Ctrl+C to shut down. (アプリケーションが開始しました。シャットダウンするには Ctrl + C キーを押してください。)Copy the port number in the line before Application started. Press CTRL+C to shut down.

    C# ポート番号

この時点では、ボットはローカルで実行されています。At this point, your bot should be running locally.

localhost で実行されているボットに接続するConnect to a bot running on localhost

認証用にエミュレーターを構成するConfigure the emulator for authentication

ボットが認証を必要とし、ログイン ダイアログを表示するには、エミュレーターを次のように構成する必要があります。If a bot requires authentication, displaying a login dialog, you must configure the emulator as shown below.

サインイン確認コードを使用するUsing sign-in verification code

  1. エミュレーターを起動します。Start the emulator.
  2. エミュレーターで、左下の歯車アイコンをクリックするか、右上の [エミュレーター設定] タブをクリックします。In the emulator, click the gear icon in the bottom left, or the Emulator Settings tab in the upper right.
  3. [Use a sign-in verification code for OAuthCards](OAuthCard のサインイン確認コードを使用する) ボックスをオンにします。Check the box by Use a sign-in verification code for OAuthCards.
  4. [Bypass ngrok for local address](ローカル アドレスに対して ngrok をバイパスする) ボックスをオンにします。Check the box by Bypass ngrok for local address
  5. [Save](保存) ボタンをクリックします。Click the Save button.

ボットによって表示されるログイン ボタンをクリックすると、確認コードが生成されます。When you click the login button displayed by the bot, a validation code will be generated. ボット入力チャット ボックスにコードを入力して、認証を実行します。You wil enter the code in the bot input chat box for the authentication to take place. その後、許可されている操作を実行できます。After that you can perform the allowed operations.

または、以下で説明されている手順を実行することもできます。Alternatively, you can perform the steps described below.

認証トークンを使用するUsing authentication tokens

  1. エミュレーターを起動します。Start the emulator.
  2. エミュレーターで、左下の歯車アイコンをクリックするか、右上の [エミュレーター設定] タブをクリックします。In the emulator, click the gear icon in the bottom left, or the Emulator Settings tab in the upper right.
  3. [Use version1.0 authentication tokens](バージョン1.0 認証トークンを使用する) ボックスをオンにします。Check the box by Use version1.0 authentication tokens.
  4. ngrok ツールへのローカル パスを入力します。Enter the local path to the ngrok tool. ツールの詳細については、「ngrok」を参照してください。For more the tool information, see ngrok.
  5. [Run ngrok when the Emulator starts up](エミュレーターの起動時に ngrok を実行する) ボックスをオンに ます。Check the box by Run ngrok when the Emulator starts up.
  6. [Save](保存) ボタンをクリックします。Click the Save button.

ボットによって表示されるログイン ボタンをクリックすると、資格情報を入力するように求められます。When you click the login button displayed by the bot, you will be asked to enter your credentials. 認証トークンが生成されます。An authentication token is generated. その後、許可されている操作を実行できます。After that you can perform the allowed operations.

エミュレーター UI

ローカルで実行されているボットに接続するには、 [Open bot](ボットを開く) をクリックします。To connect to a bot running locally and click Open bot. 先ほどコピーしたポート番号を次の URL に追加し、その更新した URL を [Bot URL](ボットの URL) バーに貼り付けます。Add the port number your copied earlier into the following URL and paste the updated URL in the Bot URL bar:

http://localhost:ポート番号/api/messageshttp://localhost:port number/api/messages

エミュレーター UI

お使いのボットが Microsoft アカウント (MSA) の資格情報で実行されている場合は、その資格情報も入力します。If your bot is running with Microsoft Account (MSA) credentials, enter these credentials too.

ボットの資格情報を使用Use bot credentials

ボットを開いたときに、ボットが資格情報を使用して実行されている場合は、Microsoft アプリ ID および Microsoft アプリ パスワードを設定します。When you open the bot, set the Microsoft App ID and Microsoft App password if your bot is running with credentials. Azure Bot Service でボットを作成した場合、資格情報はそのボットの App Service ( [設定] -> [構成] セクションの下) で使用できます。If you created your bot with the Azure Bot Service, the credentials are available on the bot's App Service, under the Settings -> Configuration section. 値がわからない場合は、ローカルで実行されているボットの構成ファイルからそれを削除してから、ボットをエミュレーターで実行できます。If you do not know the values, you can remove those from the locally running bot's configuration file, then run the bot in the Emulator. ボットがこれらの設定で実行されていない場合は、その設定でエミュレーターを実行する必要もありません。If the bot isn't running with these settings, you don't need to run the emulator with the settings either.

インスペクターを利用してメッセージ アクティビティの詳細を表示するView detailed Message Activity with the Inspector

ボットにメッセージを送信すると、ボットが応答を返すはずです。Send a message to your bot and the bot should respond back. 会話ウィンドウ内でメッセージ吹き出しをクリックし、ウィンドウの右側にあるインスペクター機能を使用して、未加工の JSON アクティビティを検査できます。You can click on the message bubble within the conversation window and inspect the raw JSON activity using the INSPECTOR feature to the right side of the window. メッセージ吹き出しは選択すると黄色になり、アクティビティ JSON オブジェクトがチャット ウィンドウの左に表示されます。When selected, the message bubble will turn yellow and the activity JSON object will be displayed to the left of the chat window. この JSON 情報には、チャネル ID、アクティビティの種類、会話 ID、テキスト メッセージ、エンドポイント URL など、重要なメタデータが含まれます。The JSON information includes key metadata, including the channel ID, activity type, conversation ID, the text message, endpoint URL, and so on. ユーザーから送信されたアクティビティやボットの応答アクティビティを検査できます。You can inspect activities sent from the user, as well as activities the bot responds with.

エミュレーターのメッセージ アクティビティ

ヒント

検査ミドルウェアをボットに追加することで、チャネルに接続されているボットの状態の変化をデバッグできます。You can debug state changes in a bot connected to a channel by adding Inspection Middleware to the bot.

サービスの検査Inspect services

新しい v4 エミュレーターでは、LUIS と QnA から JSON 応答を検査することもできます。With the new v4 emulator you can also inspect the JSON responses from LUIS and QnA. ボットと言語サービスが接続されているとき、右下の LOG ウィンドウにある [トレース] を選択できます。Using a bot with a connected language service, you can select trace in the LOG window to the bottom right. この新しいツールには、エミュレーターから直接、言語サービスを更新するための機能もあります。This new tool also provides features to update your language services directly from the emulator.

LUIS インスペクター

LUIS サービスに接続しているとき、トレース リンクに Luis Trace と指定されていることに気付きます。With a connected LUIS service, you'll notice that the trace link specifies Luis Trace. これが選択されると、意図、エンティティ、指定スコアなど、LUIS サービスからの raw 応答が表示されます。When selected, you'll see the raw response from your LUIS service, which includes intents, entities along with their specified scores. ユーザー発話の意図を再割り当てすることもできます。You also have the option to re-assign intents for your user utterances.

QnA インスペクター

QnA サービスに接続しているとき、ログに QnA Trace と表示されます。これが選択されると、そのアクティビティに関連付けられている質問と回答の組みと信頼度スコアをプレビューできます。With a connected QnA service, the log will display QnA Trace, and when selected you can preview the question and answer pair associated with that activity, along with a confidence score. ここから、ある回答に対する質問に別の言い回しを追加できます。From here, you can add alternative question phrasing for an answer.

Azure にログインするLogin to Azure

Emulator を使って、ご自身の Azure アカウントにログインできます。You can use Emulator to login in to your Azure account. これは、ご自身のボットが依存するサービスを追加および管理するときに特に役に立ちます。This is particularly helpful for you to add and manage services your bot depends on. 次の手順に従って、Azure にログインします。Log into Azure by following these steps:

  • [ファイル]、[Sign in with Azure](Azure を使ってサインインする) の順にクリックします Azure ログインClick on File -> Sign in with Azure Azure login
  • ようこそ画面で、[Sign in with your Azure account](Azure アカウントを使ってサインインする) をクリックします。Emulator アプリケーションを再起動しても、その Emulator でのサインイン状態が継続されるようにするように設定することもできます。On the welcome screen click on Sign in with your Azure account You can optionally have Emulator keep you signed in across Emulator application restarts. Azure ログインAzure login

データ収集の無効化Disabling data collection

Emulator による使用状況データの収集を許可する必要がなくなった場合は、次の手順に従って、データ収集を簡単に無効にできます。If you decide that you no longer want to allow the Emulator to collect usage data, you can easily disable data collection by following these steps:

  1. 左側のナビゲーション バーにある設定ボタン (歯車アイコン) をクリックして、Emulator の設定ページに移動します。Navigate to the Emulator's settings page by clicking on the Settings button (gear icon) in the nav bar on the left side.

    データ収集を無効にする

  2. [データ収集] セクションの [Help improve the Emulator by allowing us to collect usage data](使用状況データの収集を許可して Emulator を改善する) チェック ボックスをオフにします。Uncheck the checkbox labeled Help improve the Emulator by allowing us to collect usage data under the Data Collection section.

    データ収集を無効にする

  3. [Save](保存) ボタンをクリックします。Click the "Save" button.

    データ収集を無効にする

気が変わった場合は、いつでもチェック ボックスをオンにして有効にできます。If you change your mind, you can always enable it by re-checking the checkbox.

その他のリソースAdditional resources

Bot Framework Emulator はオープン ソースです。The Bot Framework Emulator is open source. 開発に貢献したり、バグや提案を送信したりできます。You can contribute to the development and submit bugs and suggestions.

トラブルシューティングについては、一般的な問題のトラブルシューティングに関する記事、およびそのセクションに示されているトラブルシューティングに関するその他の記事をご覧ください。For troubleshooting, see troubleshoot general problems and the other troubleshooting articles in that section.

次の手順Next steps

検査ミドルウェアを使用して、チャネルに接続されているボットをデバッグします。Use inspection middleware to debug a bot connected to a channel.