Linkedin Extra Data未使用python social auth填充

时间:2016-02-02 15:53:30

标签: python django linkedin python-social-auth

我是Python社交认证的新手。 已经跟随StackOverflow的不同问题,但不明白。 我想使用python social auth获得用户的Linkedin profile_url。

我在setting.py中有以下设置

AUTHENTICATION_BACKENDS = (
    'social.backends.linkedin.LinkedinOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_details',
    'social.pipeline.social_auth.social_uid',
    'social.pipeline.social_auth.auth_allowed',
    'social.pipeline.social_auth.social_user',
    'social.pipeline.user.get_username',
    'social.pipeline.user.create_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details'
)
SOCIAL_AUTH_LINKEDIN_SCOPE = ['r_basicprofile', 'r_emailaddress']
SOCIAL_AUTH_LINKEDIN_FIELD_SELECTORS = ['picture-url', 'email-address', 'headline', 'industry']
SOCIAL_AUTH_LINKEDIN_EXTRA_DATA = [('id', 'li_id'),
                               ('firstName', 'first_name'),
                               ('lastName', 'last_name'),
                               ('emailAddress', 'email_address'),
                               ('headline', 'headline'),
                               ('picture-url', 'picture_url')]

SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = 'some_key'
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET = 'some_secret'
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/home/'
SOCIAL_AUTH_LOGIN_URL = '/'

当我在视图中使用以下代码获取额外数据时,它会出错: -

Exception Type:    KeyError
Exception Value:    'emailAddress'

因为它没有在extra_data字段中填充emailAddress。 只有uid,first_name,last_name& access_token填充在User social auths模型中。

如何在模型中保存所有用户信息。 是否有遗漏或请提供建议如何使用python social auth从LinkedIn获取用户信息。

1 个答案:

答案 0 :(得分:0)

忘记在SOCIAL_AUTH_LINKEDIN_OAUTH2_*中使用setting.py 所有内容都已填充,但profile_url仍为null