簡體   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