Dialogflow bug webhook node js facebook chatbot - node.js

create a chatbot with dialogflow and a webhook with node js. Sometimes requests do not reach the webhook and others it takes more than five seconds to respond. It's something that happens randomly and that forces me to use intent's responses. what is this about? How can I improve it?
I have deployed it in heroku, on my pc with ngrok and on a server that has ngnix, the bug still happens. What I do is send a value to the webhook to validate it or send it to an api rest. It's very random of 20 tests that I do happen about five times. Has something similar ever happened to you?
Sometimes I only send the value to validate that is greater than or equal to x and that it is number, most of the times it works, returns the next question of the dialog in others the chatbot does not respond to the user. It seems that the webhook rejects the request.

Related

How to use the Discord JS Client without logging in?

I have a service that listens for certain updates and then uses a Discord Bot to post a message on a channel. A random example: every time a team scores a goal, post a message in a channel. I got an email from Discord to reset my bot token because there were too many logins.
As you know, in order to use the Bot you use the client.login("XXX") method. So every time there is an update my service initializes the bot and then sends a message. My assumption is that it has to do with me calling client.login("XXX") for every update. Since my service runs serverless, I can not keep the service up.
Is there a way to make the bot post a message without having to use client.login("XXX")? Or can anyone suggest any strategy to make this logic work?
That is not possible as a bot cannot do any actions without being logged in, it sounds like channel webhooks would fit your needs better.
You simply generate a webhook link in a channel which you can then post messages to through a post request.
You can read more about webhooks here
And you can read more about the required paramters and how to format a POST request to the webhook here

How to notice that a message sent to dialogflow is longer than 256 characters?

I made a facebook chatbot with dialogflow. My problem is that some users write messages to my bot that are longer than 256 characters.
Dialogflow just throws an error that the character size exceeded. As the result, the user has no answer.
I don't expect dialogflow to process the input. I just want to get this information in my backend, so I can send the user to the live chat.
Please, say me it is possible (and how ;) ).
By following this you will be able to set the custom webhook => Webhook setup
Make this server live with Ngrok with temporary later on you can migrate to your server
Now you will get event in which you will find your message sent from facebook messenger.
you can write simple JS function to send only 256 character to Dialogflow Functions
str.substring(0,255)
and send it to detectIntent in dialogflow function.

Webhook not firing consistently for RingCentral Glip posts

I have successfully created a Glip bot in the sandbox and registered the corresponding webhooks, following the instructions found here: https://ringcentral-api-docs.readthedocs.io/en/latest/glip_bots/
When testing in the sandbox, I only get a webhook payload about 50% of the time when the bot is spoken to in a conversation. I would expect to get one every time, since the bot has a subscription for posts, and is a member of that group. Additionally, if the subscription wasn't working at all, I would expect to get it 0% of the time. Literally the same text will trigger it once, but not the second time.
I determined that there was nothing wrong with the endpoint by using Postman to simulate webhooks. Every time I created a simulation, the bot became aware of the post and responded accordingly. So it isn't the endpoint. It would appear that RingCentral Glip is not calling the endpoint every time it should.
It could potentially be a sandbox issue but I don't see any documentation that supports that theory. The specific event that's not firing every time is "/restapi/v1.0/glip/posts". As I continue to investigate I thought I'd reach out to see if anyone else experienced this issue, or has suggestions on how to debug.

How to make Angular2 Http.get to wait indefinitely?

I am working on an electron app with Angular2 for frontend. When user reaches the home page, angular starts a http.get service which initiates a hardware device which waits for user input in form of RFID cards. When user response is triggered then express returns the GET call with data. User event may occur from a few seconds to few hours. It works fine if user responds quickly but after a couple of minutes Angular doesn't show the response.
I am sorry for the unclear question details. I don't know what code to add. Any help would be highly appreciated.

Sending POST requests to Google Action/API.AI or sending responses which take more than 5s

My fulfillment needs to do a lot of processing after receiving a certain request from Google Action/API.AI and the default response timeout is 5s.
https://developers.google.com/actions/components/fulfillment#nodejs
Is there any way I could send a delayed response or send a POST request after the results are ready?
The short answer is no - you must respond within 5 seconds, and there is no way to send a notification back through the Assistant at this time.
The slightly longer answer is that we know notifications are coming - but we don't know if there will be an API for them. There have been rumors about other ways that may be coming that allow us to work around the 5 second limit.
The even longer answer is that, if you are using Action Transactions (ie - allowing the user to purchase or reserve something) you can send updates after the fact. However, Transactions are still in developer preview and don't work on all surfaces (they don't work on Google Home at all, for example).

Resources