python 社交身份验证 linkedin 图片 url 为空
python social auth linkedin picture url is null
我正在使用 python 社交身份验证和 django 通过 LinkedIn 登录,我尝试获取 public 图片 URL。但是,无论我做什么,我都会得到 null。我尝试了所有可能的组合,从 public-picture-url 到 pictureUrl,下划线、CamelCase 和破折号的每个组合,有或没有 "public"。没有任何效果。
这是我的(当前)设置:
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')]
AUTHENTICATION_BACKENDS = (
'social_auth.backends.contrib.linkedin.LinkedinBackend',
'django.contrib.auth.backends.ModelBackend',
)
PS 我看过这个 Django/ python-social-auth: LinkedIn extra data returns null on some fields 但没有帮助。
显然默认情况下不在管道中收集额外数据。这解决了它:
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'
)
我正在使用 python 社交身份验证和 django 通过 LinkedIn 登录,我尝试获取 public 图片 URL。但是,无论我做什么,我都会得到 null。我尝试了所有可能的组合,从 public-picture-url 到 pictureUrl,下划线、CamelCase 和破折号的每个组合,有或没有 "public"。没有任何效果。
这是我的(当前)设置:
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')]
AUTHENTICATION_BACKENDS = (
'social_auth.backends.contrib.linkedin.LinkedinBackend',
'django.contrib.auth.backends.ModelBackend',
)
PS 我看过这个 Django/ python-social-auth: LinkedIn extra data returns null on some fields 但没有帮助。
显然默认情况下不在管道中收集额外数据。这解决了它:
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'
)