繁体   English   中英

在Django中从Facebook的服务器端身份验证捕获access_token

[英]Capture access_token from facebook's server-side authentication in Django

我想捕获此URL返回的access_token(如下)

https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&client_secret=YOUR_APP_SECRET&code=CODE_GENERATED_BY_FACEBOOK

但是,如果我使用HttpResponseredirect,它将带我进入一个空白页面,上面打印了access_token和到期秒数。 我想捕获返回的access_token并在以后使用。 下面是我的代码

def fb_return(request):
  code = request.GET.get('code')
  fb_id = settings.FB_ID
  fb_s = settings.FB_SECRET    

  url = 'https://graph.facebook.com/oauth/access_token?client_id=%(id)s&redirect_uri=http://127.0.0.1:8000/facebook/return&client_secret=%(secret)s&code=%(code)s'%{'id':fb_id,'secret':fb_s,'code':code}
  return HttpResponseRedirect(url)

您可以使用urllib执行请求:

import urllib2
url = 'https://graph.facebook.com/oauth/access_token?client_id=%(id)s&redirect_uri=http://127.0.0.1:8000/facebook/return&client_secret=%(secret)s&code=%(code)s'%{'id':fb_id,'secret':fb_s,'code':code}
response = urllib2.urlopen(url)
html = response.read()

如果响应是json,则可以将其解码为:

import simplejson
json = response.read()
dict = simplejson.load(json) 

这是一个类似的问题

根据您尝试做的事情,可能有更简单的与Facebook交互的方法:

暂无
暂无

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

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