Way for Teams App to have dynamic bot configuration - botframework

I am building a Teams App with Bot functionality for proactive messaging targeting single tenants, however I would like to have the bot published in the public marketplace so that users can install it from the marketplace instead of sideloading to their teams. The bot resources and code will be dynamically created on the tenant's azure.
Is there a way for me to have the bot id on the marketplace be dynamic depending on who installed it?

By default the bot is multitenant application. You can use the same bot Id across different tenants.

Related

Microsoft Teams Bot not receiving messages

We have created a Bot through the Teams Dev Portal (https://dev.teams.microsoft.com/) and attached it to a Teams Tab app, but the bot is not receiving any messages from the Bot Framework. The Tab app was also created using the Teams Dev Portal and published to the Org app store. The same bot works fine if we test it on Bot Framework Portal (https://dev.botframework.com/). The bot is a http service hosted on AWS and registered in Azure AD.
We have a couple of other virtually identical bots created a few months ago that continue to work fine. Newly created bots seem to have this issue.
You need to configure the channel in azure Bot and add the app service.
please refer this link for further query.
https://www.sharepointeurope.com/step-by-step-configure-bot-to-work-in-teams-and-with-microsoft-graph/

Bot registration vs application registration in Azure

I'm trying to understand the difference between a bot service registration & application registration in Azure.
I'd assumed that a bot registration was all that was required (to get the app id & secret) to test out a bot, but then came across the following guide for setting up a teams app that used a bot which instructs you to also create an application registration that's linked to the bot registration.
What is the application registration for?
If you're developing a consumer / skill bot setup do you need an application registration for all the bots or just the skill consumer?
Thanks in advance.
So technically you require both, but you're correct that doing a normal bot registration in the Azure portal (I say normal because there are other ways than the portal, for instance, like ARM templates, etc.) will create an App Registration as well. You need to go to the app registration to get your app password (also called app secret).
You can choose to go another route, like creating an app registration first, and then using that when you create your bot, and there are reasons why you might like to do that, but if you don't have a specific reason, just go the normal route.
Incidentally, be aware of the difference when creating your bot between a "Bot Channels" registration and a "Web App Bot" - both will give you a bot registered with the Bot serviced, but the "Web App" bot also includes an Azure "Web app" that you can use to host your bot (whereas Bot Channels gives you more freedom in how you want to host your bot, for instance as an Azure Function or even outside of Azure altogether).
Bot service registration refers to registering a bot with the Azure Bot Service (as your bot does not have to be hosted on Azure).
App registration refers your bot security configuration. You set this up when you click on to the "App ID and password" field during setup.
There is some other Azure Bot Service documentation which goes into this in more detail:
Bot channels registration
Troubleshooting Bot Framework authentication
Create a bot with Azure Bot Service

how to add an existing bot to custom microsoft app?

how to add "now virtual agent"(service now bot in microsoft teams) to custom microsoft team. Do I need to register the "now virtual agent" in azure?
To integrate a Virtual agent Bot in Teams App, you need to publish your bot and need to add Microsoft Teams channel to make the Bot reachable to Teams Users. Once the Team channel is successfully added you will get an App ID. Now you can create an App Package for Teams using App Studio, You need to put the App Id for your Bot in bot Configuration. Look at Add Chat bot to Teams documentation

User's title attribute from Teams bot

I have a working Teams bot, using the nodejs botbuilder-teams SDK v3, and registered at dev.botframework.com and apps.dev.microsoft.com. I have created a Teams app that contains it (using the App Studio app in Teams), and installed it in an Office 365 developer tenant of which I am the admin, and the bot can send and receive messages with no problem.
When the bot is added to a team, I get the "conversationUpdate"/"teamMemberAdded" message, and use the fetchMembers() call from the teams bot connector to retrieve basic info for each member, including "givenName", "surname", "email", etc. However, I don't get the "jobTitle" attribute. Is there any way to retrieve jobTitle through the Teams bot SDK?
Alternatively, could I make MSGraph API calls (say, /v1.0/groups/{group-id-for-teams}/members)? Is there a good example of a nodejs serverside app like a bot calling the MSGraph API? The authentication part seems somewhat murky to me.
jobTitle is not part of roster details. You need to call Graph APIs to fetch additional details.
Here is Node.js sample for bot authentication. If you are using Azure for bot registration then please take a look at Azure Bot Service for Authentication in Teams documentation.

How to connect QnA Service on qnamaker.ai to an azure chatbot using Bot Service?

I’ve created a QnA Service using qnamaker.ai and when I proceed further to create a bot using the Bot Service, I cannot because the upon searching there’s no option like Bot Service (Preview) as mentioned in the tutorials. Instead I’m presented with the following:
• Web App Bot
• Functions Bot
• Bot Channels Registration
On Azure, there are 3 services related to Bot:
Web App Bot
Functions Bot
Bot Channels Registration
Web App Bot and Function Bot are both part of Bot Service:
Bot Service provides the core components for creating bots, including
the Bot Builder SDK for developing bots and the Bot Framework for
connecting bots to channels.
Simply put, Bot Service will host a Web App / Functions Bot in Azure and let you config channels or edit the code online.
Bot Channels Registration is for projects where the developer creates their own web app project based on Bot Builder SDK and deploy the web app to Azure/AWS/Google Cloud Platform. In Azure's Bot Channels Registration, the developer can link their web app's url to Azure and enable channels to communicate to their bot. In summary, this scenario enable more flexiblity in development and hosting.
In your case, you can create a Web App / Functions Bot use QnA Bot template. Once created, in Application Settings > under App settings > Find QnAKnowledgebaseId & QnASubscriptionKey,
replace the two fields from the information in QnA service.
Save the update and your Bot should use the QnA service you published.

Resources