Unable to link dialogflow webhook to ngrok tunnel - flask

Have created a chatbot and I am trying to connect it to my local host using ngrok....the localjost is running via my computer and is showing active...however dialogflow webhook is not able to send any request to the ngrok portal...
I have tried multiple time to host a server via ngrok and pasted the link in webhook section in Dialogflow..but dialogflow diagnostic shows
Webhook call failed. Error: PERMISSION_DENIED.
fulfillment status ngrok cmd prompt ngrok server
Any help would be appreciated...not sure what I am missing....

Without seeing the actual configuration, there are a few things I would look at:
Make sure you're actually using the right ngrok URL from your console. Many times I was using an older URL in the Dialogflow configuration.
Make sure you're using the HTTPS URL.
Make sure your server is actually running on your computer, and that it is listening at the same port that ngrok is using on your computer.
Check the ngrok console to see if it is getting the request at all and what the response might be.
Go to http://localhost:4040/ which will give you details of each connection through ngrok.

Related

Istio-proxy did not receive request from host

I have an express js client app and an express server app with almost the same istio configuration. Client cannot be accessed through its host URL while the server is working well. Curl client host URL just gives me infinite waiting. And I cannot find any related traffic log in the istio-proxy of client pod. This is very confusing. What could be the possible reason for this problem?
istioctl analyse on live cluster dose not give any helpful information

Postman localhost server is not starting

So, I am trying to make an API server on postman. Somehow it doesn't want to start. I know I have a crap computer, but I can run this many pages.
So, back to the problem. I am trying to run GET localhost:3000/users?id=hiddenIDsoyoucanthackme and it says this:
Hmmm… can't reach this page: localhost refused to connect.
Try:
Search the web for localhost
Checking the connection
Checking the proxy and the firewall
ERR_CONNECTION_REFUSED
Back on the problem. Same at Postman.
Error: connect ECONNREFUSED 127.0.0.1:3000
Help.

How to configure a Daphne server to invite clients to add the Certificate Authority that issued my certificate if they hadn't done it yet?

If I make a request to my Daphne/Django server in Postman or the Android app we're developing, Daphne serves the certificate, but it's rejected. If I first make a simple get request to https://letsencrypt.org/ and then make a request to my server, the certificate is accepted.
How can I make sure a client will trust my certificate, even if it's the first time this client is seeing a certificate issued by this CA?
Everything bellow can serve as a history of how I studied the problem.
Original title: SSL Certificate works in browser but can't be verified by Postman
I have an AWS EC2 instance running Ubuntu 18.04, with python 3, Django, a bunch of project dependencies, Daphne running with ASGI, with a certificate by Let's Encrypt. Daphne is using port 8000 for HTTP and por 4430 for HTTPS, iptables is configured to redirect requests from port 80 to 8000 and from port 443 to 4430. Django is configured to enforce secure connections with SECURE_SSL_REDIRECT=True in the settings.py file.
There's a "Site in Construction" temporary page being served, and it's properly accessible from every browser and every device I tested so far. If I explicitly type http, I get redirected to https and the certificate is accepted. Every browser I tested (Firefox, Brave, Chrome, Chrome for Android) says cert is good.
Curl outputs the HTML content returned from the server. I don't know if it accepts the certificate or ignores it.
The Problem
Postman, however, says "Error: unable to verify the first certificate". Only works when I disable "SSL certificate verification", which doesn't answer my question: why Postman is unable to verify my Let's Encrypt certificate?
I'm building an API that runs on the same server, using the same domain, and it's meant to be consumed by a mobile app. Currently, the Android app is throwing a "TypeError: Network request failed", which I suspect could be caused by the same thing Postman is complaining about.
When I spin the server locally and configure 1) the app to use http://localhost:8000 and 2) the server not to enforce SSL, it works in browsers, Postman and in the Android app.
I've being looking for answers in many places for days, so any clue will be very welcome.
EDIT
Interesting clue:
If I make a request to my Daphne/Django server, it servers the certificate, which is rejected. But if I first make a request to https://letsencrypt.org/ and then make a request to my server, it works!
This pattern holds true in both Postman and our Android app.
It also happens when I first make a request to https://alloy.city (instead of letsencrypt.org), which is served by a Node.js app, and uses a certificate also issued by the Let's Encrypt CA.
So maybe the question should be: how to configure my server to politely invite clients to add the CA that issued my certificate if they hadn't done it yet?.
Apparently, that's what my Node.js server does.
Yes, in settings, tap ssl verification off
File > Settings > General > SSL Certificate Verification > off

How can I enable my laptop to receive HTTP requests over port 8080 on my private network?

I'm behind a router and I have a web service hosted on Tomcat on my laptop. It's running on port 8080. I want my phone, also connected to my home network to be able to send HTTP requests to my laptop on port 8080. I installed a REST service app on my phone that allows me to send customized HTTP requests to wherever, and I tried sending it to 192.168.1.20:8080/web-service/test, where 192.168.1.20 is the address of my laptop on my home network and /web-service/test is the url I'm using to interact with the web-service, but I keep getting an "invalid request" message. When I access the web-service through that url using localhost:8080/web-service/test on my laptop the text that's printed in the browser is "running," but not when accessed through the phone.
I also tried pinging my laptop from my phone using another app and the ping is successful. The firewall is turned off and network sharing is on (windows 10). Anyone have any idea why I cannot access the web-service using 192.168.1.20:8080/web-service/test?
the problem was with the rest api testing app i was using on my phone. for some reason it was showing me an "invalid request" message even if the same url worked when i visited it from the chrome app. but basically it was working the entire time.

Apex callout to local web service or to web service in test environment?

I'm pretty new to salesforce callout stuff and trying to make a simple GET request from my salesforce callout, but I kept getting this error:
System.CalloutException: Unable to tunnel through proxy. Proxy returns "HTTP/1.0 404 Not Found
I'm pretty sure this is because I'm making request to the web service on my local machine, but since I'm only testing this out, I don't have a server that's available online.
I tried making a callout to just http://www.google.com?q=blah and it works just fine.
So I guess my question is that anyone has a way to make callout to a web service on their local machine?
Just put your ip address instead of 'localhost' and that is it. If you have a router at work/home, you need setup it so it route internet calls to your PC.
That is how it works for me right now. I created a WS using Java. Started a server on 8080 port. From my SFDC application I call xx.xx.xx.xx:8080/bla