首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能使用Facebook进行OAuth;我的下一步调试步骤是什么?

不能使用Facebook进行OAuth;我的下一步调试步骤是什么?
EN

Stack Overflow用户
提问于 2011-11-04 04:45:31
回答 1查看 1.3K关注 0票数 0

我有一个Django模板,它通过执行以下操作来启动Facebook OAuth process

代码语言:javascript
复制
window.location='https://www.facebook.com/dialog/oauth?client_id=MY_CLIENT_ID&redirect_uri=http%3A//localhost%3A8000/fbpanel/explore-python'

然后,在我的Django视图中,我得到的结果代码如下:

代码语言:javascript
复制
import cgi
import urllib

# [...]

code = request.GET['code']
args = {
    'client_id': MY_CLIENT_ID,
    'redirect_uri': 'http://localhost:8000/fbpanel/explore_python'
    'client_secret': MY_CLIENT_SECRET,
    'code': code,
}
url = 'https://graph.facebook.com/oauth/access_token?' + \ 
        urllib.urlencode(args)

raw_response = urllib.urlopen(url).read()
response = cgi.parse_qs(raw_response)    

if response:
    error = ''
    if response['access_token']:
        access_token = response['access_token'][0]
    if response['expires']:
        expires = response['expires'][0]
else:
    access_token = 'No access token returned'
    expires = 'No expiration given'
    error = raw_response

通常,responseNoneraw_response包含Error: {"error":{"message":"Error validating verification code.","type":"OAuthException"}}

相同的凭据在JavaScript SDK中验证无误。在这种情况下,我也将我的服务器绑定到localhost,并在我的官方应用程序域中设置了localhost:8000。在我这样做之前,JavaScript不能工作。之后,它确实发生了。所以我不认为localhost是问题所在。

我手动遍历了代码,打印出FB返回的code,然后在python解释器中逐行手动运行上面的代码,我看不出有什么地方做错了。我的下一步调试步骤是什么?如果您收到OAuthException,FB文档提供的指导很少。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-05 01:43:06

请求令牌时,用于redirect_uri的值必须与请求代码时的值完全相同。由于在请求令牌时不会发生实际的重定向,因此很容易遗漏细微的差异。在这种情况下,错误消息并不是特别具有描述性;它真正的意思是“您发送的参数与您发送的代码值不对应”。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8001628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档