【发布时间】:2011-10-01 23:23:04
【问题描述】:
我正在按照此处的说明进行操作:
http://developers.facebook.com/docs/authentication/
尝试连接到 facebook graph API 服务器端。我正在使用 Django,基本上复制了这里找到的相同代码:
https://github.com/facebook/python-sdk/blob/master/examples/oauth/facebookoauth.py
这是我的代码
def get_code(request):
c = RequestContext(request)
verification_code = request.GET.get('code',None)
args = dict(client_id=FACEBOOK_APP_ID, redirect_uri=REDIRECT)
if verification_code:
args["client_secret"] = FACEBOOK_SECRET_KEY
args["code"] = verification_code
response = cgi.parse_qs(urllib.urlopen(
"https://graph.facebook.com/oauth/access_token?" +
urllib.urlencode(args)).read())
print "------------------------"
print response
#access_token = response["access_token"][-1]
#print access_token
print "------------------------"
else:
http.HttpResponseRedirect("https://graph.facebook.com/oauth/authorize?" + urllib.urlencode(args))
无论如何,我能够成功获取授权码,但是当我尝试使用它来获取我的 access_token 时,我看到以下响应:
{
"error": {
"type": "OAuthException",
"message": "Error validating verification code."
}
}
我不知道发生了什么,但我在 facebook 网站和他们提供的代码上都遵循指示,这在 Python 和浏览器中都不起作用。有趣的是,如果我使用具有相同凭据的客户端流程,我可以通过哈希标签获取 access_token,但这对我没有用。
另外,我正在本地测试 @http://127.0.0.1:8000 并通过我的 facebook 应用设置正确配置。
谢谢
更新:
我修好了,结果两个 redirect_urs 必须是相同的 我正在使用
^/facebook/auth/
和
^facebook/auth/token/
两个都用了
facebook/auth/ + facebook/auth/
成功了
【问题讨论】:
-
绝对将您的修复拆分为一个答案,并将其标记为已接受。我保证,你遇到的问题已经伤害了其他人。
标签: python facebook facebook-graph-api oauth-2.0