获取个人资料Linkedin个人资料图片django-allauth

时间:2020-08-04 18:19:18

标签: django django-allauth

我知道这应该是一个问题,但是在经历了如此头痛之后,我认为我应该为同样的问题提供帮助。

根据allauth文档,我不能使用Allauth 0.42.0和Django 3.0.8,因为一生的热爱,请从用户那里获取个人资料图片网址。

1 个答案:

答案 0 :(得分:0)

但是经过数小时的搜索,我找到了这个解决方案:

# access_token required by LinkedIn's API
access_token = SocialToken.objects.get(account__user=user, account__provider='linkedin_oauth2')

# The request
r = requests.get(f"https://api.linkedin.com/v2/me?projection=(profilePicture("
                         f"displayImage~:playableStreams))&oauth2_access_token={access_token}")

# The json on the profile picture key
profile_pic_json = r.json().get('profilePicture')

# There's a lot of pictures sizes, so I put it on a array to easier reading
elements = profile_pic_json['displayImage~']['elements']

# elements[len(elements)-1] returns the pic with the highest resolution
# ['identifiers'][0]['identifier'] is the url itself
url_picture = elements[len(elements)-1]['identifiers'][0]['identifier']

我希望这对某人有帮助。