使用 django 访问用户当前的公司 social-auth

Accessing user's current company with django social-auth

我已经在我的网站上成功设置了 Linkedin 社交身份验证 django-socialauth。我能够检索顶级配置文件字段,例如标题,没问题,在我的settings.py中设置如下:

LINKEDIN_EXTRA_FIELD_SELECTORS = [
'email-address',
'headline',
'industry',
'location',
'picture-url',
'specialties',
'positions',
'relation-to-viewer',
'skills',
'public-profile-url',    
]
LINKEDIN_EXTRA_DATA = [('id', 'id'),
                   ('first-name', 'first_name'),
                   ('last-name', 'last_name'),] + [
                       (field, field.replace('-', '_'), True)
                       for field in LINKEDIN_EXTRA_FIELD_SELECTORS
                   ] 

不幸的是,我对如何从这种界面使用 Linkedin 字段选择器语法访问 "lower levels" 感到困惑。

例如,从这里开始:https://developer.linkedin.com/forum/how-get-api-current-company-position-using-parameter-current,可以使用语法访问用户当前的公司:

positions:(is-current,company:(name))

如何将此选择器包含在上面的 settings.py 变量中?像上面那样天真地插入选择器会导致 KeyErrors 或 Null 值。

想通了。从链接中检索字典 "details" 后,您可以检索当前公司:

 current_companies = [position['company']['name'] for position in details['positions']['position'] if position['is-current']=='true']