Using azure bot services in Teams : how to send files to bot - botframework

I am new to development in teams and bot framework.
I have a botframework bot which is up and running on Teams. I did not use the app studio, I directly exported it from azure bot service.
I want to send an image from the mobile phone (like a selfie). It seems you can do this with any contact you have but not with bots. Right now, sending files to bots seems to be impossible on my version of Teams. You can send an image via bing, that's all.
From the documentation below, it says: "Sending and receiving files to bots on mobile devices is not supported."
https://learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/send-and-receive-files?tabs=dotnet
On my computer, it seems as well that it is not supported. Anyway, I am looking for a solution to use my phone camera to share a selfie.
I came across this thread that discusses a way to add a button to prompt the user to upload a file on the client-side.
Prompt User to Upload file in Dialog Flow with MS Bot Framwork v4
Is this possible to do this in Teams rather than on Webchat?
I am new to this framework, so any insights on the above would be greatly appreciated!

This is possible and we actually just released a sample for it (Node / C#). Note, however, that I don't believe you can trigger the user's camera...only ask for them to upload an image file.
The important part that you're likely missing is step 7 (you need a manifest.json that contains "supportsFiles": true):
This step is specific to Teams. Edit the manifest.json contained in the teamsAppManifest folder to replace your app id from Bot Framework everywhere you see the place holder string <>. Zip up the contents of the teamsAppManifest folder to create a manifest.zip. Upload the manifest.zip to Teams (in the Apps view click "Upload a custom app")

Related

Teams channel in Azure Bot Service not working

I created an Azure Bot Service. When I test the service using "Test in Web Chat" it works as expected. When I add the Web Chat channel and use the Web Chat URL, it works as expected.
However, when I add the Microsoft Teams channel, it does not work as I expected. The Health Status shows "Healthy" (in "Channels (Preview)") and "Running" (in "Channels"). When I select "Open in Teams", I am redirected to Teams, but I do not see the bot as a user/bot I can chat with. I watched a video showing just that behavior as I was expecting, but the link only opens my Teams. I only have one other user in Teams and that user shows up. No sign of the bot. What am I missing?
I tried using the "Get bot embed codes". I put in the URL for the Mstreams href and instead of sending me to the bot user as I expected, I am redirected to the other user on the account (not the bot). What am I missing?
I've tried this using the "Channels" and the "Channels (Preview)" sections with the same results.
If relevant, I am still in the trial period with Azure and have not upgraded, but nothing says this should be an issue.
From all I can tell, I'm logging into the Azure portal and the Bot Framework portal with the same account as my Teams account. I'm using latest updated version of Chrome.
I don't think free account has anything to do with this. But the fact that the " bot embed codes" lead you to a different user, may be a configuration issue. Read Create a bot and Test and debug your Microsoft Teams bot in the Microsoft Teams documents for more information.
If you have successfully deployed to teams channel (teams channel registration), as per docs Copy the https part of the code that is shown in the Get bot embed code dialog.
For example, https://teams.microsoft.com/l/chat/0/0?users=28:b8a22302e-9303-4e54-b348-343232
In the browser, paste this address and then choose the Microsoft Teams app (client or web) that you use to add the bot to Teams. You should be able to see the bot listed as a contact that you can send messages to and receives messages from in Microsoft Teams.
Alternately, In-order to test them in teams you need to take the app id from the Configuration page of the bot.
Once you search with the app ID in teams you would be able to see this bot as a contact in Microsoft Teams.
Refer:
Create a Teams app package and upload your app to the Teams client for testing. Learn how
Publish your bot as a Line of Business app in your organization's Teams Tenant App Catalog. Learn how
Publish your bot as an app in the Teams App store. Learn how
I think I have found the answer, though I'm still trying to retrace my steps to make sure this is accurate. I will update here if I find anything more of value.
Despite little/no documentation to this effect, bots apparently do not work in the free version of Teams. You have to at least:
create a developer version of Microsoft O365 (E5 license) (and go through all the rigamarole to get it setup properly)
add at least one more user to the organization
then open Teams
Then, I used the embed URL to get the bot to show up. (Again, the same process did not work with my free Teams account even with another user added to it).
For the record, I didn't need to change any admin settings once the three items above were completed.

How to add file upload button to the microsoft teams bot framework? [duplicate]

I'm trying to allow the users that are already talking to the bot upload files (attaching the files to the bot).
I uploaded a manifest with "supportsFiles": true through "Upload Custom App".
But this only affects my conversation with the bot, the other users' manifest doesn't look like its updated because they can't see the attachment button.
Is there a way to update the bot's manifest for all the users in the organization?
This is not a published application, the users talk to the bot through the link from the registered bot in Azure Portal.
Any help is appreciate.
Thanks!
The Bots which are accessed via link won't update as there is no metadata associated with it. You need to create App Manifest for you Microsoft Teams.
Once you've created your app there are three options for distributing it.
Upload your app directly.
Publish your app to your organization's app catalog
Publish your app through AppSource
Please go through the options provided in the documentation and let us know if you need any help.

How to install a bot to microsoft teams (nodejs)

Recently I have created a bot for microsoft teams. I have installed it to my teams successfully.But is there any way where all my organization users can install app by clicking on a single link that is displayed in my web page. For example like (authenticating slack bots, similarly like google auth). and I need to store the teams details of every user so that my bot can send messages to them.
If you want to give a link to install the app inside teams from an external webpage, you could do that using Deeplink to app installation. Here's the format of the link https://teams.microsoft.com/l/app/YourAppId. You could also add the app to your tenant app catalaog(Your organisational store) and all the members of your organisation can install the app from there.

Load 1:1 bot as tab in Teams

How can I load my 1:1 bot (so; a bot that doesn't work inside a channel) as a tab in Teams? The default manifest options only provide ways to set it as 1:1 (but then each user would have to add the bot manually) or as channel-bot (but that's more for commands rather then discussions).
So looking for something like this:
http://prntscr.com/nqzh37
Bots are supported only as part of conversation. This could be personal or team conversation. Currently, what you are looking for is not possible in Microsoft Teams.
You can publish an app to the Tenant Apps Catalog from where individual could install it. We are working on feature for Tenant admin to install certain apps for all the users.
One possible option is to 'Add a tab' and choose 'Website' and link to your bot. This would require you to run your bot in web chat, but in this way the bot would not be integrated into Teams, wouldn't listen for #mentions (as it wouldn't have been added as an app) yet would be accessible to any user who has access to that Teams channel. (This example links to "mockbot", accessible via the BotFramework-WebChat GitHub repo).
Keep in mind, this loads the website hosting the bot. In this example, mockbot utilizes the entire web page. Therefore, we only see the bot. If the bot is embedded with other content on the page, then the other content will be displayed, as well.
Click the '+' symbol:
Choose 'Website':
Give the bot/app a name and add the link:
Enjoy bot mayhem:
Hope of help!

How to load variable Microsoft Teams bot icon?

For my multi tenant bot Teams app I am trying to provide a different bot name and bot icon per customer. However, it seems that I can only set manually a name and icon once from my Azure Portal. I wonder how to make this variable.
A workaround would be to accept that I can only have 1 bot name and icon, but package manually each customer bot through App Studio / Manifest editor. However I manage to have a unique name, the bot's original name is still presented. See: http://prntscr.com/njf1x9
I am hoping to have a Microsoft Teams app in the app store that has a variable name and icon. If not possible I hope a custom package would not show the original bot's name and icon.
The ability to support overriding app settings, including bot name, icon, and messaging endpoint, on a per tenant basis is not currently supported. It is something we are considering, but we do not have a timeframe to share.
For others: After more talks with MSFT the eventual answer is to come up with an architecture that creates new instances..

Resources