我正在使用 django 的 allauth 来通过 linkedin 进行身份验证,但是当我尝试进行身份验证时,它在 api 响应中返回“此资源在 v1 API 下不再可用” 以下是我对 django 应用程序的设置。
'SCOPE': [
'w_share','r_emailaddress','r_basicprofile','rw_company_admin'
],
'PROFILE_FIELDS': [
'id',
'first-name',
'last-name',
'email-address',
'picture-url',
'public-profile-url',
]
请指导我我做错了什么。
最佳答案
正如 @Antwane 替换提到的
access_token_url = 'https://api.linkedin.com/uas/oauth2/accessToken'
authorize_url = 'https://www.linkedin.com/uas/oauth2/authorization'
与
access_token_url = 'https://www.linkedin.com/oauth/v2/accessToken'
authorize_url = 'https://www.linkedin.com/oauth/v2/authorization'
并在范围内将 r_basicprofile
替换为 r_liteprofile
。在 v2 中,他们将 r_basicprofile
替换为 r_liteprofile
。
现在要访问基本配置文件,您需要调用 https://api.linkedin.com/v2/me
而不是 https://api.linkedin.com/v1/人/~
。与 v1 API 不同,您不会在配置文件 API 中获取电子邮件地址(简而言之,r_liteprofile 不包含电子邮件地址)。
在发出 API 请求时添加 header 字段 "X-RestLi-Protocol-Version":"2.0.0"
要访问电子邮件地址,您应该调用https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))
关于django - Linkedin-api 此资源在 v1 API 下不再可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51934326/