Facebook的Auth_token错误
我这两天一直在研究这个问题,但一直没有结果。
我在本地运行我的Facebook应用,使用的是端口转发的方法。
我知道我的服务器设置是没问题的,因为我能在Django的运行日志和dyndns的日志中看到记录。
Django也能正确响应请求。
问题是,当应用用我的用户账号授权后,它直接跳转到一个显示以下内容的页面:
Errors while loading page from application
The URL http://amitverma.dyndns.org/facebook_sample/?auth_token=817f8fbe99eff10582b634589de17b84 is not valid.
Please try again later. We appreciate your patience as the developers of app_test and Facebook resolve this issue. Thanks!
我正在做一个测试应用,学习Facebook和Django的教程,链接在这里和这里。
我还是遇到了这个错误,完全不知道我哪里做错了……请帮帮我。
2 个回答
0
当你遇到那个错误时,假设你在Django的设置里把debug=True
打开了,并且你的应用在Facebook上是开发模式,你可以选择查看源代码,这样就能看到整个Django的错误页面,包括错误追踪信息。Facebook在HTML里把它注释掉了,所以在前端看不到,但你可以把它复制粘贴到一个单独的HTML文件里,然后在浏览器里打开,这样就能看到那个友好的Django错误页面,这肯定能给你一些关于出错原因的线索。
1
这种情况通常发生在身份验证失败的时候。我不太确定Python的客户端库是什么样的,但在PHP的库中,你通常会进行一次授权调用,比如说 $facebook->require_login()
。
在PHP库中,如果这个调用无法验证用户的Facebook会话,它就会自动输出一些HTML代码,来重定向浏览器并尝试重新建立会话,这就是为什么会有 auth_token
这个参数。
我猜你遇到的情况可能和这个类似。试着把你进行的任何身份验证调用分开,使用像 LiveHTTPHeaders 这样的Firefox扩展,看看在请求过程中是否有重定向发生。