Does Google Actions Support Websockets? - dialogflow-es

I am trying to build a Rocket Chat Google Action and one of the major advantage of RC is it's Realtime API's however they require Websocket to get access. I know that Dialogflow can be used for Websocket's but does Google Actions support it?
I am using Dialogflow along with Firebase as backend for my Action.

Actions on Google is a platform for stateless applications running through a REST API call. In this model, the user sends one request to your server and they get back one response.
Actions on Google itself doesn't support web sockets, but you are able to define a cloud function like Firebase to do advanced fulfillment. While you may be able to get web sockets to work in your function, you'd still need to adjust the Action's conversational flow to work in a request/response fashion instead of listening to web sockets continually.

Related

How to register whatsapp webhook

I need to do an integration with twilio where the application serves multiple accounts. With that I have the need to receive the whatsapp integrations in different URL for each user of the application.
I would like to register these URLs in a simple way, without my user having to access the twilio panel.
How can I register a whatsapp WebHook using HTTP APIs or nodejs SDK?
I searched the documentations and even debugged the nodejs SDK and couldn't find a way to do that.
What’s integration allows you toconfigure one URL per number. How about setting that URL to your backend which then breaks out the behavior based on the from number.

Azure Bot - communicate through REST APIs

I have to integrate 2 different azure bots into a single azure bot application. So thinking of integrating with the REST api. Will this approach work ?
From this links
https://learn.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-quickstart?view=azure-bot-service-4.0
https://learn.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-api-reference?view=azure-bot-service-4.0
I can get the access token from cloud bot. But there is no example on "sending message from client". It have examples on handling client messages from server as Activity object.
It would be better if any samples on "sending message from client to azure cloud throught REST"
what is different between REST and connectors.?
I believe it will be possible with DirectLine, but wanted to know how to do thorugh REST APIs.
Thanks in Advance !!
I can't tell you whether or not your idea will work for dealing with two separate bots without more information. If you are trying to start conversations with both bots and the sending messages to the different conversations based on some set of criteria than that should work.
The Bot Framework API can essentially split into two sections:
The Connector (primary) API that the bot uses to talk to users and the service.
The DirectLine API that you can use to talk to the bot instead of using one of the built-in connectors like Slack or Teams.
Based on your needs, the DirectLine is indeed what you are looking for. The directline.botframework.com/v3/directline/conversations/abc123/activities endpoint will allow a client app to send a message to the connected bot.

how can we do logging of conversation messages in database in ibm watson using node.js

I have created a watson conversation using assistant-simple github repo in node.js and it is working fine locally and in ibm cloud also. Now I want to log these conversation messages in a database. How can I log these conversation messages using database in node.js.
Assistant will keep the messages in a log for a small period of time List logs for a workspace and see Log limits.
Alternatively you will have to code putting messages into a database inside the NodeJS (or other language) server Orchestrator layer (which the UI communicates with). This layer gets all the user messages and Assistant responses and so can store them where you want.
I am not aware of a sample which directly communicates with Assistant and stores the user messages in a database. You would need to take various pieces of code and put them together to achieve this.
For example this sample shows how to upload information to a Cloudant database running on IBM Cloud, using NodeJS.
Alternatively if you don't want to write the code locally, you can invoke App Connect to store the data in a database. This Assistant and App Connect sample shows how to use Assistant actions to invoke AppConnect at some point in the dialog flow, either from the Assistant service (using a Cloud Function) or from the Orchestrator layer (as a client action).
The sample passes a user Id found in the utterance, but the approach is to take some data from Assistant, invoke App Connect and pass it to App Connect, and App Connect calls some other external system with the data. In your case, the data could be the user utterance and Assistant response, and App Connect could store this in a database.
One option would be to leverage cloud functions to make a call to another service.
Depending on what you want to do with the conversation data. If you wanted to access chatlogs and metrics you could send it to a logging service such as www.chatseer.com so you can access the logs.

How to create a custom webhook in Dialogflow based on Azure?

So I would like to implement Dialogflow fulfilliment using a custom node.js webhook. I've created a node.js app in Azure (I have my own .azurewebsites.net site), however I'm not quite sure how to link it to Dialogflow. How do I do this? Thank you.
On the dialog flow side Go to dashboard and click on fulfillment on side bar provide the web hook and basic authentication and headers.
On nodeJs make sure you provide POST Webhook API where dialogflow app sends requests.
Are you familiar with Express or any other framework to create REST APIs with Node?
There are tons of material on the web, but this is a starting point if you like.
In this link you'll find the documentation that shows which fields will be posted to your endpoint and those that you'll want to send back to Dialogflow.

How to make 3rd party api call in dialogflow's inline editor

How to make 3rd party api call in dialogflow using inline editor please share if you have some code regarding this.
Thank you
You cannot make external network requests (for example an API call) from the inline editor. You need to deploy your code elsewhere. The easiest way to do this is by deploying to a paid Firebase plan. From Google:
Network calls originating from your Cloud Function for Firebase to destinations outside Google's network require billing to be enabled for the underlying Google Cloud or Firebase project.
You can create an API with the technology that you want, as long as the response from the API can be understand by Dialogflow.
You need to configure it by going to Fulfillment, and point it to your API.
The API needs to respond with this structure: Dialogflow.
And If you plan to integrate with Actions on Google, you have this repository which includes some examples of responses.
And here you have some libraries to interact with Dialogflow with different languages.

Resources