0

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

1 回答 1

0

您可能需要在 Facebook 应用程序面板中添加“localhost”作为“应用程序域”之一

  1. https://developers.facebook.com/apps
  2. “编辑”您尝试调试的应用程序
  3. 在“应用程序域”行中,输入localhost (另请注意那里的帮助文本:“在域和子域上启用身份验证”)
于 2013-01-25T03:53:34.507 回答