Bot Framework v4 file upload bot sample for Teams.
This bot has been created using Bot Framework, it shows how to upload files to Teams from a bot and how to receive a file sent to a bot as an attachment.
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/56.teams-file-upload
-
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 installed in "personal" scope which is why you immediately entered a one on one chat conversation with the bot. Please refer to Teams documentation for more details.
Sending a message to the bot will cause it to respond with a card that will prompt you to upload a file. The file that's being uploaded is the teams-logo.png
in the Files
directory in this sample. The Accept
and Decline
events illustrated in this sample are specific to Teams. You can message the bot again to receive another prompt.
You can also send a file to the bot as an attachment in the message compose section in Teams. This will be delivered to the bot as a Message Activity and the code in this sample fetches and saves the file.
To learn more about deploying a bot to Azure, see Deploy your bot to Azure for a complete list of deployment instructions.