Messaging Extensions are a special kind of Microsoft Teams application that is support by the Bot Framework v4.
There are two basic types of Messaging Extension in Teams: Search-based and Action-based. This sample illustrates how to build an Action-based Messaging Extension.
Note these instructions are for running the sample on your local machine, the tunnelling solution is required because the Teams service needs to call into the bot.
-
Clone the repository
git clone https://github.com/Microsoft/botbuilder-samples.git
-
In a terminal, navigate to
samples/javascript_nodejs/51.teams-messaging-extensions-action
-
Install modules
npm install
-
Run ngrok - point to port 3978
ngrok http -host-header=rewrite 3978
-
Create Bot Framework registration, using the current https URL you were given by running ngrok. Ensure that you've enabled the Teams Channel
-
Update the
.env
configuration for the bot to use the app id and app password from the Bot Framework registration. (Note the app password is referred to as the client secret in the azure portal and you can always create a new client secret anytime.) -
This step is specific to Teams. Edit the
manifest.json
contained in theteamsAppManifest
folder to replace your app id from Bot Framework everywhere you see the place holder string<<YOUR-MICROSOFT-BOT-ID>>
. Zip up the contents of theteamsAppManifest
folder to create amanifest.zip
. Upload themanifest.zip
to Teams (in the Apps view click "Upload a custom app") -
Run your bot at the command line:
npm start
Note this
manifest.json
specified that the bot will be called from both thecompose
andmessage
areas of Teams. Please refer to Teams documentation for more details.
- Selecting the Create Card command from the Compose Box command list. The parameters dialog will be displayed and can be submitted to initiate the card creation within the Messaging Extension code.
or
- Selecting the Share Message command from the Message command list.
To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.