5

I am testing Heroku's ability to write a Facebook app with Python. I'm having a problem running the basic tutorial. It seemed like this question was worth asking on StackOverflow in case there's an answer that helps other people who run into the exact same problem.

I followed the instructions on heroku's facebook development page (http://devcenter.heroku.com/articles/facebook). Deploying to Heroku worked fine.

However, running the app locally does not. When I follow the instructions and bring up

http://localhost:5000

I get to the Facebook Login screen. But when I click Log In on that screen, I get:

SSL connection error Unable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have. Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.

and the console output is

09:55:07 web.1 | https://localhost:5000/  09:55:07 web.1 |
https://www.facebook.com/dialog/oauth?client_id=179852202088814&redirect_uri=https://localhost:5000/&scope=user_likes,user_photos,user_photo_video_tags
09:55:07 web.1 | 127.0.0.1 - - [24/Sep/2011 09:55:07] "GET / HTTP/1.1"
302 -  09:59:02 web.1 | 127.0.0.1 - - [24/Sep/2011 09:59:02] code 400,
message Bad request syntax
 ('\x16\x03\x00\x00U\x01\x00\x00Q\x03\x00N}\xe2&\xf9\xf7"\x15\xd5\xb6\xf6\xa6\x0f\xb01\x97N\xcc\xb3l\xed\x97\xd1!-\x91c?\x1f\xac\xa2h\x00\x00*\x00\xff\x00\x88\x00\x87\x009\x008\x00\x84\x005\x00E\x00D\x00f\x003\x002\x00\x96\x00A\x00\x04\x00\x05\x00/\x00\x16\x00\x13\xfe\xff\x00')
09:59:02 web.1 | 127.0.0.1 - - [24/Sep/2011 09:59:02]
"UQN}?&??"ն??1?N̳l??!-?c???h*???98?5EDf32?A/??" 400 -

When I try it in Safari, the address bar shows the following very long URL:

https://localhost:5000/?code=AQBPWpkbRdL2bt7KER0fcUS9ZnheXiGApkaF5MXbNgyIJqzw46SGve1iVyLIx1sDltNh0PkXPDdxhjAxoa1YED1cpcaflCXCkqzO27A-rhgjBpXwWUClpGRpRmDD2eIXcOyIczo_qGf45tbpvDZO5hFa0gmUeSHri4vY3bqw-5jBjZRoZfEB7pI8cLPOIsnNICI#_=_

Safari compains that it can't establish a secure connection.

This is running on OS X 10.6.8.

garyrob
  • 568
  • 7
  • 17
  • Have you set your app domain to localhost instead of the heroku URL somewhere? – Igy Sep 25 '11 at 09:05
  • You can run without HTTPS for development. Have sandbox mode enabled (through facebook) and run your app from localhost. – mscccc Sep 28 '11 at 13:53

1 Answers1

6

This is because https is not enabled locally on your machine, you could enable this or you could alternatively run without the SSL on your localhost. To do this you would edit the function to look something like:

def get_home():
    return 'http://' + request.host + '/'
CraigKerstiens
  • 5,906
  • 1
  • 25
  • 28
  • Stupid me wants to know: How do I enable https? – PEZ Sep 27 '11 at 19:46
  • 1
    Thank you -- this does indeed solve the problem! It appears that the Heroku tutorial is not ready for prime time because it doesn't address this. But at least now I have a way to continue. – garyrob Oct 09 '11 at 02:12