使用Python运行Heroku的Facebook应用程序教程时出现问题

5
我正在测试Heroku使用Python编写Facebook应用的能力。我在运行基本教程时遇到了问题。如果有答案可以帮助其他人解决完全相同的问题,那么在StackOverflow上提出这个问题是很值得的。
我按照Heroku的Facebook开发页面(http://devcenter.heroku.com/articles/facebook)上的说明操作,将应用部署到Heroku没有问题。
然而,在本地运行应用程序时却不行。按照说明进行操作后,启动应用程序会出现问题。
http://localhost:5000

我进入了Facebook登录页面,但是当我点击该页面上的“登录”按钮时,出现了以下提示:

SSL连接错误 无法与服务器建立安全连接。这可能是服务器的问题,也可能是需要客户端认证证书而您没有该证书。错误代码107(net::ERR_SSL_PROTOCOL_ERROR):SSL协议错误。

同时控制台输出如下:

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 -

当我在Safari中尝试时,地址栏显示了以下非常长的URL:

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

Safari提示无法建立安全连接。

这是在OS X 10.6.8上运行的。


你是否在某个地方将应用程序域设置为本地主机而不是Heroku的URL? - Igy
你可以在开发过程中不使用HTTPS运行。启用沙盒模式(通过Facebook)并从本地主机运行你的应用程序。 - mscccc
1个回答

6

这是因为本地机器上未启用https,您可以启用它,或者在本地主机上无需SSL运行。要做到这一点,您需要编辑函数以使其类似于:

def get_home():
    return 'http://' + request.host + '/'

愚蠢的我想知道:如何启用https? - PEZ
1
谢谢 - 这确实解决了问题!看来 Heroku 教程还没有准备好,因为它没有涉及到这个问题。但至少现在我有了继续的方法。 - garyrob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接