bbrookfield / node-alexa-server

A modular NodeJS based server for your Amazon Echo
20 stars 14 forks source link

No Connection #15

Open droidforever opened 7 years ago

droidforever commented 7 years ago

I now have your node-alexa-server running on PORT 9000 on my web server. I have forwarded the incoming port 9000 to port 80. I set my endpoint in my Alexa Skill to https://mydomain.com/thermostat. I have other skills running on my domain via Alexa successfully.

When I start the server the output is: sudo PORT=9000 node app.js {EMPTY LINE} there is no confirmation is that the way it should be?

Here is the line from ps -aux: 2025 4.9 0.5 991176 45816 pts/0 Sl+ 05:03 0:01 node app.js so it is for sure running Netstat: tcp6 0 0 [::]:9000 [::]:* LISTEN

When I try to access it on the test page I get no repsonse

I am able to browse to my thermostat with http://myserveraddress/tstat and I get a response

Am I missing something here or have I configured it wrong? Your assistance as always is truly appreciated.

dvideby0 commented 7 years ago

You would need to forward port 443 to your instance and not just 80. HTTPS uses 443.

Sent via the Samsung Galaxy S®6 active, an AT&T 4G LTE smartphone -------- Original message --------From: droidforever notifications@github.com Date: 7/26/17 5:00 AM (GMT-05:00) To: bbrookfield/node-alexa-server node-alexa-server@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [bbrookfield/node-alexa-server] No Connection (#15) I now have your node-alexa-server running on PORT 9000 on my web server. I have forwarded the incoming port 9000 to port 80. I set my endpoint in my Alexa Skill to https://mydomain.com/thermostat When I try to access it on the test page I get no repsonse I am able to browse to my thermostat with http://myserveraddress/tstat and I get a response Am I missing something here or have I configured it wrong? Your assistance as always is truly appreciated.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/bbrookfield/node-alexa-server","title":"bbrookfield/node-alexa-server","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/bbrookfield/node-alexa-server"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"No Connection (#15)"}],"action":{"name":"View Issue","url":"https://github.com/bbrookfield/node-alexa-server/issues/15"}}}

bbrookfield commented 7 years ago

If your local server is running HTTP meaning you have a SSL certificate then you have to go to Port 443 as Richard stated if not then you can't use https you just use normal http

On Jul 26, 2017 5:00 AM, "droidforever" notifications@github.com wrote:

I now have your node-alexa-server running on PORT 9000 on my web server. I have forwarded the incoming port 9000 to port 80. I set my endpoint in my Alexa Skill to https://mydomain.com/thermostat

When I try to access it on the test page I get no repsonse

I am able to browse to my thermostat with http://myserveraddress/tstat and I get a response

Am I missing something here or have I configured it wrong? Your assistance as always is truly appreciated.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/bbrookfield/node-alexa-server/issues/15, or mute the thread https://github.com/notifications/unsubscribe-auth/ABv-7sJbUcLTRXn5yqszWRtHC1eF_UiYks5sRwATgaJpZM4OjoLk .

droidforever commented 7 years ago

I feel like I'm getting closer but still not there. In the test of the application on Amazon I get "The response is invalid" where before I got no communication at all. I believe this may be some sort of port forward issue. But when I check for open ports both 9000 and 443 are open and I have port forward set for the internal address of my thermostat external nat 9000 internal 443 thermostat

Maybe I can explain this a little better. I have an independent firewall with IPFire. From that on the wired network I bridged my Linksys router. My wireless network is connected from my Linksys which is on the same subnet as IPFire. So IPFire is on 192.168.10.1 Linksys address is 192.168.10.19 and my Thermostat is 192.168.10.23. The firewall on Linksys is disabled by default when using a bridge. The Node App.js is running on my server 192.168.10.10. I hope this explanation gets me closer to reslove. Thank you for your assistance!

droidforever commented 7 years ago

Will this work? Please I need to get this working

iptables -t nat -I PREROUTING --src 0/0 --dst 192.168.10.23 -p tcp --dport 443 -j REDIRECT --to-ports 9000

bbrookfield commented 7 years ago

you stated in your first emai I set my endpoint in my Alexa Skill to https://mydomain.com/thermostat When I try to access it on the test page I get no repsonse I am able to browse to my thermostat with http://myserveraddress/tstat and I get a response

Can you browse to https://mydomain.com/thermostat/tstat from outside your network.? (Try your cell phone)

If not that is where your issue is. If you have endpoint configured as HTTPS then you have to have a SSL certificate. Amazon requires that all endpoints be HTTPS other than their own. You can use a self signing certificate for testing

https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/registering-and-managing-alexa-skills-in-the-developer-portal#h2_ssl

droidforever commented 7 years ago

I've got it working now. Thank you again for everything especially your patience. Just stupid errors on my part with my firewall. You are the best!