page_type | description | products | languages | extensions | contentType | createdDate | ||||
---|---|---|---|---|---|---|---|---|---|---|
sample |
Demonstrating the feature of typeahead search (static and dynamic) control in Adaptive Cards. |
|
|
samples |
24-12-2021 23:30:17 |
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.
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 results:
On Submit
button click, the bot will return the choice that we have selected.
-
.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
In Azure portal, create a Azure Bot resource.
- Ensure that you've enabled the Teams Channel
-
Clone the repository
git clone https://github.com/OfficeDev/Microsoft-Teams-Samples.git
-
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
-
Run ngrok - point to port 3978
# ngrok http -host-header=rewrite 3978
-
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 URLhttps://1234.ngrok.io
the "Messaging endpoint" would behttps://1234.ngrok.io/api/messages
-
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 idMicrosoftAppPassword
- Generated from Step 1, also referred to as Client secret- Press
F5
to run the project
-
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 behttps://1234.ngrok.io
then your domain-name will be1234.ngrok.io
.
-
Zip the contents of
AppPackage
folder into amanifest.zip
, and use themanifest.zip
to deploy in app store or add to Teams using step -
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.