How to use REST API services in azure Bot framework - botframework

I am using Bot builder SDK 4.0 with node.js
I don't wanna use Azure bot service api, instead I will use my own node service.
Requirement :
Wanted to have a complete Custom UI/UX for my bot.
Single Azure bot application with many different bot clients running.

If you use the BotFramework with the default BotFramework adapter, you will be using the Azure Bot Service APIs like the DirectLine channel. You can use the BotFramework-DirectLineJS package if you want to build your own webclient for your BotBuilder bot.
Also note that at the time of writing, the BotFramework-Webchat package has a new version in preview which you can find here. This version is rebuilt from scratch and provides rich customization options which could be worth a try.

Related

How can I create a custom screen in the messaging section in Microsoft Teams add-on

I don't want to use bot framework in pop-up or chat window.
Can I use the web API I created myself.
When I do a call, I want the api to request it to list the returned data.
Can I select multiple data listed?
From your description you seem to want to create a Teams Message extention, specifically a search extention that will be used from the compose box.
this is indeed powered by a webservice that you will write and host,
however the communication channel between Teams and your webservice must use the bot framework for communication.
Note that you do not need to write a chatbot as such;
I like to think of it as the 'communication channel' between all the Teams clients that have your app installed , and your webservice.
High level steps:
Create and deploy your web service (while developing use a tunneling
service like ngrok to run it locally)
Register your web service with
the Bot Framework
Create your Teams app package
Install your App into Teams
More steps and details in the messaging extensions documentation

Can we build a product which enables end user to create conversational chat bot using bot framework on a self hosted environment?

I want to develop a product which simplifies the way of creating conversational chat bots using Microsoft BotFramework SDK. As we can build and host web application on-premise completely.
So can we build the similar thing using bot framework on a self hosted environment?
Here is the link for Microsoft Bot Framework: https://dev.botframework.com/
You can, indeed, build a bot entirely on-premises/self-hosted, provided that you don't need to connect to a Channel like Teams.
Background
Basically, bots communicate via:
User interaction with DirectLine Client (like Web Chat) ->
DirectLine API receives data and sends to bot ->
Bot hosted anywhere receives message
Note:
WebChat is just a DirectLine client. If you want to build your own WebChat, you can clone the repo and build it yourself. However, that all this does is make it so you can host your own webchat.js file, if you really want to be self-hosted.
Steps
With that in mind, all you need is:
A Direct Line client like Web Chat (specify domain property with your own endpoint when you call createDirectLine), or you can write your own client
You own DirectLine API implementation like offline-directline (more info)
Host your bot somewhere
Security
With this approach, you won't be able to use the typical appId/password setup.
You can manually implement our security protocol by following this document
Even though it is possible to manually implement the security protocol, we recommend reusing our existing open-source libraries
Based on answers, putting a more complete answer here. Since the option exists to have internet connectivity, I'd definitely suggest creating the solution as a "regular" Bot Framework bot, using the Azure Bot registration. Importantly, there are TWO options to do this - the most obvious one creates a "registration" for the bot but ALSO defaults to hosting it in an Azure Web App, which has a cost associated that can be quite significant. HOWEVER, there's another option, to create just a "Bot Channel" registration, which means you get a bot registered in Azure, but not necessarily hosted in Azure.
I've described this more in this post and you want to use the "Bot Channels Registration" in Azure, not the "Web App Bot". Then, on the "settings" screen you can define what the bot's actual address is (see here for a view of the Settings screen).
So, overall that should help - basically the bot just needs to have an HTTPS, internet-accessible endpoint. HOWEVER, that said, it's possible to host your bots inside Azure Functions, rather than Azure Web Apps, and the cost is dramatically cheaper (cents vs dollars, especially with low traffic). It's a bit of work, especially as the default samples default to the more standard options, but it works quite well.
I've recently launched a new blog, by the way, and I've got a post describing some of what I've learned so far about how bots work, that would be good to know as part of this. See How Bot Calls Actually Work.
We're in the process of migrating from an entirely on-premise solution with our own DirectLine server to Azure Bot Channels Registration because of the requirement for MS Teams integration.

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.

How to connect bot to communication application?

Is it possible to connect bot created using Microsoft Bot Framework on .NET Core that deployed in Azure and bot account that was created in Circuit messenger (by Unify)? And if it's possible, what should I use?
At this time there is no special adapter available for the Circuit SDK to use the Microsoft Bot Framework. But since the Circuit SDK is a plain JavaScript SDK you should be able to use it in any framework.

Can we publish Bots on FB Messenger, Skype, etc without registering on Botframework

Can we publish a Bot (built with Microsoft Builder SDK) on Facebook Messenger without registering on Bot Framework?
and the Bot would not be hosted on Azure.
You need to register the Bot in order to enable it to work with the supported channels (like Facebook). This doesn't mean that the Bot will be publicly available. You can register the bot but keep it unpublished.
If you want to use the Bot in a custom channel, you might have to consider using the DirectLine API. Here is a related thread.
You can host the Bot on other cloud providers. Here is a thread discussing about hosting the Bot in AWS.

Resources