Python Facebook OAuth问题

Python Facebook OAuth问题,python,facebook,facebook-graph-api,oauth-2.0,Python,Facebook,Facebook Graph Api,Oauth 2.0,我遵循此处的说明: 正在尝试连接到facebook graph API服务器端。我使用的是Django,基本上复制了这里找到的相同代码: 这是我的密码 def get_code(request): c = RequestContext(request) verification_code = request.GET.get('code',None) args = dict(client_id=FACEBOOK_APP_ID, redirect_uri=REDIRECT)

我遵循此处的说明:

正在尝试连接到facebook graph API服务器端。我使用的是Django,基本上复制了这里找到的相同代码:

这是我的密码

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))
无论如何,我能够成功获取授权代码,但当我尝试使用它获取我的访问令牌时,我看到以下响应:

{
   "error": {
      "type": "OAuthException",
      "message": "Error validating verification code."
   }
}
我不知道发生了什么,但我在facebook网站和他们提供的代码上都遵循着指示,这既不是用Python也不是从浏览器上运行的。有趣的是,如果我使用具有相同凭据的客户端流,我可以通过哈希标记获取access_令牌,但这对我没有用处

此外,我正在本地测试@,并通过我的facebook应用程序设置正确配置了它

谢谢

更新:

我把它修好了,结果两个重定向都是一样的 我在用

^/facebook/auth/

^facebook/auth/token/

只要我两个都用了

facebook/auth/+facebook/auth/


它成功了

我看你找到了解决问题的办法。我还想提到一个我维护的库,它可能使您在使用Python的OAuth提供程序时的生活更轻松,它被称为。特别是,使用Flask连接Facebook的Graph API可能会很有用


这可能对你现在已经有用了,但是下次你需要在Python中消耗一个OAuthPosivor的时候,你可以考虑一下吗?

我发现你找到了解决问题的方法。我还想提到一个我维护的库,它可能使您在使用Python的OAuth提供程序时的生活更轻松,它被称为。特别是,使用Flask连接Facebook的Graph API可能会很有用


这可能对你现在已经有用了,但是下次你需要在Python中消耗一个OAuthPosivor的时候,可以考虑一些事情。

明确地把你的解决方案拆分成一个答案,并把它标记为接受。我保证,你遇到的问题已经伤害了其他人。一定要将你的解决方案分割成一个答案,并将其标记为已接受。我保证,你碰到的问题已经影响到其他人了。