如何在Django-allauth中获得Google的生日约会?

时间:2014-07-22 08:09:13

标签: python django oauth google-oauth django-allauth

我正试图通过Django-Allauth从Google oauth获取生日,但我不能。

我读到我必须将范围设为“https://www.googleapis.com/auth/plus.me”,但在extra_data字段中没有任何内容。

你能帮帮我吗? 谢谢

编辑: 示例代码:

SOCIALACCOUNT_PROVIDERS = {
'facebook':
   {'SCOPE': ['publish_stream', 'email', 'user_birthday', 'user_location'],
    'AUTH_PARAMS': {'auth_type': 'https'},
    'METHOD': 'oauth2',
    'VERIFIED_EMAIL': True},
'google':
    #{ 'SCOPE': ['https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/userinfo.email',],
    { 'SCOPE': ['https://www.googleapis.com/auth/plus.login', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/plus.me'],
      'AUTH_PARAMS': { 'access_type': 'online' },
       } }

在Facebook上工作,我有新的extra_data信息,如生日,性别等。但谷歌没有用新信息填充extra_data字段。

1 个答案:

答案 0 :(得分:0)

出于在一个学术项目中满足用例的目的,我forked django-allauth添加了一些功能,其中包括额外的Google个人资料数据,

您可以使用pip安装软件包

pip install django-allauth-underground

将Google范围配置为

SOCIALACCOUNT_PROVIDERS = {
    'google': {
        'SCOPE': [
            'https://www.googleapis.com/auth/user.birthday.read',
            'https://www.googleapis.com/auth/userinfo.email',
            'https://www.googleapis.com/auth/userinfo.profile'
        ],
        'AUTH_PARAMS': {
            'access_type': 'online',
        }
    },
}

成功注册后,将使用一些 实际额外数据 来更新额外数据 可以从extra_data['people']

访问