Skip to content

Latest commit

 

History

History
101 lines (74 loc) · 4.45 KB

File metadata and controls

101 lines (74 loc) · 4.45 KB
page_type description products languages extensions contentType createdDate
sample
Demonstrating the feature of typeahead search (static and dynamic) control in Adaptive Cards.
office-teams
office
office-365
C#
samples
24-12-2021 23:30:17

Typeahead search control in Adaptive Cards

This sample shows the feature of typeahead search (static and dynamic) control in Adaptive Cards.

Use the bot command staticsearch to get the card with static typeahead search control and use bot command dynamicsearch to get the card with dynamic typeahead search control.

Static search: Static typeahead search allows users to search from values specified within input.choiceset in the Adaptive Card payload.

static search card

Dynamic search: Dynamic typeahead search is useful to search and select data from large data sets. The data sets are loaded dynamically from the dataset specified in the card payload.

dynamic search card

Dynamic search results:

dynamic search results

On Submit button click, the bot will return the choice that we have selected.

Prerequisites

  • .NET Core SDK version 3.1

    determine dotnet version

    dotnet --version
  • Ngrok (For local environment testing) Latest (any other tunneling software can also be used)

    run ngrok locally

    ngrok http -host-header=localhost 3978
  • Teams Microsoft Teams is installed and you have an account

To try this sample

1. Setup for Bot

In Azure portal, create a Azure Bot resource.

2. Run your bot sample

  1. Clone the repository

    git clone https://github.com/OfficeDev/Microsoft-Teams-Samples.git
  2. Open the code in Visual Studio

    • File -> Open -> Project/Solution
    • Navigate to folder where repository is cloned then samples/bot-type-ahead-search-adaptive-cards/csharp/TypeaheadSearch.sln
  3. Run ngrok - point to port 3978

    # ngrok http -host-header=rewrite 3978
  4. Open your Azure Bot settings on the Azure Portal and change the "Messaging endpoint" for the HTTPS URL from the ngrok with /api/messages appended. E. g. for ngrok forwarding URL https://1234.ngrok.io the "Messaging endpoint" would be https://1234.ngrok.io/api/messages

  5. Setup and run the bot from Visual Studio: Modify the appsettings.json and fill in the following details:

    • MicrosoftAppId - Generated from Step 1 (Application (client) ID)is the application app id
    • MicrosoftAppPassword - Generated from Step 1, also referred to as Client secret
    • Press F5 to run the project
  6. Modify the manifest.json in the /AppPackage folder and replace the following details:

    • {{Microsoft-App-Id}} with Application id generated from Step 3
    • {{domain-name}} with base Url domain. E.g. if you are using ngrok it would be https://1234.ngrok.io then your domain-name will be 1234.ngrok.io.
  7. Zip the contents of AppPackage folder into a manifest.zip, and use the manifest.zip to deploy in app store or add to Teams using step

  8. Upload the manifest.zip to Teams (in the Apps view click "Upload a custom app")

    • Go to Microsoft Teams and then go to side panel, select Apps
    • Choose Upload a custom App
    • Go to your project directory, the ./AppPackage folder, select the zip folder, and choose Open.
    • Select Add in the pop-up dialog box. Your app is uploaded to Teams.

Further reading