我是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获取用户信息。
答案 0 :(得分:0)
忘记在SOCIAL_AUTH_LINKEDIN_OAUTH2_*
中使用setting.py
所有内容都已填充,但profile_url
仍为null
。