BotFramework - Bot Composer - Deploy to local - botframework

How can we deploy Bot designed in Microsoft Bot composer (of Bot framework) to local machine instead of Azure.
As of now there is only one dropdown entry in Publishing target, while creating publishing profile - "Publish Bot to Azure"

Bot Composer, unfortunately, only natively supports publishing to the cloud. To publish a bot to a machine requires more steps. I found this answer useful: Deploy a microsoft bot onto a local machine and host it

Related

How to Connect MS Teams to Chat Bot Deployed in Azure Bot Service deployment "Development" Slot i.e. NOT the Production/Default Slot

Have created a Development Slot to deploy my Bot and unit test during the development process while the Production/default Slot contains the binaries for tested live ChatBot.
We are successfully using MS Teams Channel to connect with the ChatBot hosted in the Production/Default Deployment slot.
Need Inputs
As the ChatBot in Development slot and Production/default slot both point to the same MicrosoftAppId how can I test the ChatBot Binaries in the Development slot in MS Teams as, the MicrosoftAppId is the only reference which the MS Teams Manifest requires to connect to the Chatbot which is obviously same for both slots.
I haven't done exactly this setup, but I'm pretty sure the following would work:
Create a new Bot Channels Registration in Azure - this is a resource in Azure that lets you control a bot, but it's totally unlinked from hosting - it's just a "registration" (the other option in Azure, "Azure Web Bot", is what you've used now, that gives a Bot Channel Registration AND an Azure Web App combined together.
Change your AppId and AppPassword to being Deployment Slot configuration settings. Use your current ones for Prod
For the Dev deployment slot configuration settings, use the App Id and App Password that are generated for you in the Bot Channels Registration you created earlier.
Under "Settings" in your Bot Channels Registration, copy the address from your Production version, but change the first part to match the address of your dev slot (make sure the "/api/messages" is still there.

On-premise Chatbot unable to receive msg from Teams

We have set up the following network:
chatbot setup
Our internal chatbot is written in C#, and runs in .NET core linux env.
As of now, we are able to use the Bot Framework's Web Cmd to Send and Receive from our Internal Chatbot. But we are unable to use MS Teams to communicate with our Internal Chat Bot. We have set up App ID and App Password in the MS Team's App via App Studio.
We also enabled External App and Sideloading.
Is there any way to troubleshoot this? or is there something we may have missed?
Thanks in advance
As per this documentation, You need to also enable the Teams channel for your bot in the Azure Portal under Bot Management > Channels, for this to work.

The benefits of hosting a bot on Azure Bot Service compare to hosting a bot on a typical Web App hosting

A bot is essentially a web API and so it can be hosted on any web service.
I am abit confused when one of the following approaches should be prefered over each other:
Option #1 Host a Bot on Azure Bot Service
Option #2 Host a bot as a plain PaaS Web API
Currently I am hosting my bot on a plain Azure PaaS App Services. It is working very well.
However, I expect there must be some advantages to hosting a bot on Azure Bot Service.
When I go through the documentations the following example shows how to Create an Azure Bot Service in Azure Portal, download its code, change it then deploy it again to the same Azure Bot Service:
https://learn.microsoft.com/en-us/azure/bot-service/bot-service-build-download-source-code?view=azure-bot-service-4.0
In contrast, the following example shows how to build a bot in Visual Studio and publish it to an Azure Web App:
https://learn.microsoft.com/en-us/azure/bot-service/bot-builder-howto-deploy-azure?view=azure-bot-service-4.0
What are the advantages of hosting a bot on Azure Bot Service?
Is there any resource or article that contrasts the two options?
They are essentially the same thing under the hood. A bot is basically just an API endpoint so there are many ways to host you bot. If you create A bot service you get options to add other services from the creation page. Whereas if you just create a web app or app service you will have to manually add these things.
Creating a Web App Bot will allow you to all in one step create:
Bot Channels Registration
Choose a template to start with
Configure a Luis app
Add Azure Storage
Add application insights

deployment of the bot in microsoft bot framework

is there possible to deploy our bot in visual studio our project bot in azure resources is there possible to deploy??
also with database and mail sending SMTP server
we have subscription and all
then how to deploy bot in azure
You can deploy you bot to Azure. Its a MVC WebApi project like others. If you need SMTP mail, you can use services like SendMail to that. For Databases, you can also use one of the many that azure provides (eg. DocumentDB, SqlAzure).

How to connect local WebChat client to a bot running locally?

Is it possible to talk to my bot via WebChat like I'm doing it via Emulator, Without registering and publishing the bot on Azure?
You will need to register the bot in the BotFramework portal and enable the WebChat channel. Registering the bot doesn't mean that the bot will be published to the bot directory. You don't need to publish the bot to using it.
Also, you don't need to publish the bot in Azure to use it. Instead, you could use ngrok to create a secure tunnels to localhost.
You can check the following links:
https://docs.botframework.com/en-us/node/builder/guides/core-concepts/#debugging-locally-using-ngrok
https://robinosborne.co.uk/2016/09/19/debugging-botframework-locally-using-ngrok/
Update 21/12
Just remembered that since the WebChat is now open source, you might have an option to run it locally as described in the README.md. Below the relevant portion of the docs.

Resources