我正在使用allauth for django向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',
]请指点我哪里做错了。
发布于 2019-11-14 20:33:07
正如@Antwane replace所提到的
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_liteprofile替换r_basicprofile。在v2中,他们用r_liteprofile替换r_basicprofile。
现在,要访问基本配置文件,您需要调用https://api.linkedin.com/v2/me而不是https://api.linkedin.com/v1/people/~。与profile API不同,您不会在profile API中获得电子邮件地址(简而言之,r_liteprofile不包含电子邮件地址)。
发起接口请求时添加头部字段"X-RestLi-Protocol-Version":"2.0.0"
要访问电子邮件地址,您应该调用https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))
发布于 2018-08-20 23:53:48
这是一个known issue。您可以等到合并后关闭issue #2086,然后发布新版本的django- pull request #2087。
在此之前,您可以使用更新的访问令牌和授权URL为Linkedin API创建自定义适配器。有关详细信息,请参阅allauth documentation。
例如,将模块allauth.socialaccount.providers.linkedin_oauth2复制到您自己的项目中,然后编辑views.py以更新URL
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'现在,将您的自定义allauth应用程序添加到您的INSTALLED_APPS将允许您像以前一样使用Linkedin API。
https://stackoverflow.com/questions/51934326
复制相似问题