我在 Django 包上花了一些时间来研究 Facebook 集成的大量选项。我希望有人可以缩小我想做的选择。我希望能够使用 python 访问 API 并执行各种任务。目前的主要任务如下:
我需要从 cookie 中获取用户的 facebook 电子邮件,然后使用它来创建一个本地配置文件,其中将存储其他信息。如果有人这样做的一个很好的例子,或者如果一个特定的模块有好的文档就足够了。
编辑:另请注意 - 我不想使用注册。我希望在用户使用 FB 登录时创建配置文件。
脸书:http ://catherinetenajeros.blogspot.com/2013/03/facebook-login.html
def get_profile(request, token=None):
args = {
'client_id': settings.FACEBOOK_APP_ID,
'client_secret': settings.FACEBOOK_APP_SECRET,
'redirect_uri': request.build_absolute_uri(reverse('pets:fb_callback')),
'code': token,
}
target = urllib.urlopen('https://graph.facebook.com/oauth/access_token?' + urllib.urlencode(args)).read()
response = cgi.parse_qs(target)
access_token = response['access_token'][-1]
return access_token
def fb_login(request):
args = {
'client_id': settings.FACEBOOK_APP_ID,
'scope': settings.FACEBOOK_SCOPE,
'redirect_uri': request.build_absolute_uri(reverse('app_name:fb_callback')),
}
return HttpResponseRedirect('https://www.facebook.com/dialog/oauth?' + urllib.urlencode(args))
def fb_callback(request):
access_token = get_profile(request, request.GET.get('code'))
fb_profile = urllib.urlopen('https://graph.facebook.com/me?access_token={0}'.format(access_token))
fb_profile = json.load(fb_profile)
fb_username = fb_profile.get('username', fb_profile['email'].split('@')[0])
fb_id = fb_profile.id
fb_email = fb_profile.email
[.........]