繁体   English   中英

要求fb令牌的请求仅在生产环境中才在Django中返回错误400:“无效的redirect_uri:不允许使用指定的URL…”

[英]Request for fb token returns Error 400 in django only in production: “Invalid redirect_uri: The specified URL is not allowed…”

我正在使用本教程尝试使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

您可能需要在Facebook Apps面板中将“ localhost”添加为您的“ App Domains”之一

  1. https://developers.facebook.com/apps
  2. “编辑”您要调试的应用程序
  3. 在“应用程序域”行上,输入localhost (也请注意其中的帮助文本,其内容为:“在域和子域上启用身份验证”)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM