Захватьте access_token из серверной аутентификации Facebook в Django - PullRequest
2 голосов
/ 31 марта 2012

Я хочу захватить access_token, возвращенный этим URL (ниже)напечатаны 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)

1 Ответ

4 голосов
/ 31 марта 2012

Вы можете использовать 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:

  • Если вам нужно только сделать что-то на стороне клиента, вы можете использовать JavaScript javascript SDK.
  • Если вы создаете приложение Canvas, вы можете использовать django-fandjango .
  • Если вы создаете сайт с логином на Facebook, вы можете использовать django-social-auth
  • Если вы хотите взаимодействовать на стороне сервера с графиком API, вы можете использовать facepy
...