Skip to content

Latest commit

 

History

History
 
 

44.prompt-users-for-input

Prompt users for input

This sample demonstrates how to create your own prompts with an ASP.Net Core 2 bot. The bot maintains conversation state to track and direct the conversation and ask the user questions. The bot maintains user state to track the user's answers.

Prerequisites

  • .NET Core SDK version 3.1

    # determine dotnet version
    dotnet --version

To try this sample

  • Clone the repository

    git clone https://github.com/Microsoft/botbuilder-samples.git
  • Run the bot from a terminal or from Visual Studio:

    A) From a terminal, navigate to samples/csharp_dotnetcore/44.prompt-users-for-input

    # run the bot
    dotnet run

    B) Or from Visual Studio

    • Launch Visual Studio
    • File -> Open -> Project/Solution
    • Navigate to samples/csharp_dotnetcore/44.prompt-users-for-input folder
    • Select PromptUsersForInput.csproj file
    • Press F5 to run the project

Testing the bot using Bot Framework Emulator

Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots on localhost or running remotely through a tunnel.

  • Install the latest Bot Framework Emulator from here

Connect to the bot using Bot Framework Emulator

  • Launch Bot Framework Emulator
  • File -> Open Bot
  • Enter a Bot URL of http://localhost:3978/api/messages

Interacting with the bot

A bot is inherently stateless. Once your bot is deployed, it may not run in the same process or on the same machine from one turn to the next. However, your bot may need to track the context of a conversation, so that it can manage its behavior and remember answers to previous questions.

In this example, the bot's state is used to a track number of messages.

  • We use the bot's turn handler and user and conversation state properties to manage the flow of the conversation and the collection of input.
  • We ask the user a series of questions; parse, validate, and normalize their answers; and then save their input.

This sample is intended to be run and tested locally and is not designed to be deployed to Azure.

Further reading