我正在尝试使用本教程在 python、django 中获得 fb api 的长期访问令牌:http: //developers.facebook.com/docs/howtos/login/server-side-login/
这在开发服务器上为我本地工作,但不在生产中!
我在第一步中得到了一个代码,但下一步有问题:步骤 6. 将代码交换为访问令牌
这是我获取访问令牌的代码:
params = {
'client_id': app_id,
'client_secret': app_secret,
'code': code,
'redirect_uri': "http://" + Site.objects.get_current().domain + reverse("login_fb")
}
url = "https://graph.facebook.com/oauth/access_token?" + urllib.urlencode(params)
headers = {'User-Agent': 'Mozilla/5.0'}
request = urllib2.Request(url, headers=headers, data=urllib.urlencode(params))
response = urllib2.urlopen(request)
当我调用请求时,我收到一个错误:HTTP 错误 400:错误请求
它正在开发服务器上工作。当我使用return redirect(url)
而不是urllib2.urlopen(url)
我被重定向到有效的访问令牌时。为什么它不适用于urlopen?
更新 这是 fb api 的响应:
Invalid redirect_uri: The specified URL is not allowed by the configuration of the application