捕获在Django

问题描述:

从Facebook的服务器端认证ACCESS_TOKEN我想捕捉捕获在Django

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

通过这个网址(下)返回的access_token但如果我HttpResponseredirect,它带我到一个空白带有access_token和expiry secs的页面已打印。我想捕获返回的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) 

Here's a similar question dealing with this

根据你想要做的事情,有可能更容易办法与Facebook互动:

+0

感谢@Timmy使用https://github.com/jmg/pyfb最适合我 – NazimZeeshan 2012-03-31 19:05:47