我正在使用LinkedIn API v1
,并看到了公告:
所有开发人员都需要将其应用迁移到我们最新的API和OAuth 2.0版将于2019年3月1日发布。
我实现了新的Oauth2 Flow(基本相同,只是将端点和权限r_basicprofile
更改为r_liteprofile
),并且有效并返回了我在检索访问令牌中使用的代码
获取访问令牌后,我将进行一次调用以返回用户的firstName
,lastName
和id
,并再次调用以获取email
(之前是只有1个请求,但没关系)。
在这里,我看到使用Authorization
标头返回了一个错误,该错误表示我没有通知访问令牌,但是如果将访问令牌放在参数oauth2_access_token
中,则可以成功发出请求。
在他们的文档(https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin?context=linkedin/consumer/context)中,他们没有说要放置访问令牌,而在Oauth2流文档(https://docs.microsoft.com/en-us/linkedin/shared/authentication/authorization-code-flow?context=linkedin/consumer/context)中,它使用Authorization
标头和v1 API。但是,无论如何,它都可以使用URL中的参数来工作。
Oauth2 授权后:
URL: https://api.linkedin.com/v1/people/~?oauth2_access_token={{accessToken}}&format=json
使用 JavaScript SDK 授权后:
URL: https://api.linkedin.com/v1/people/~
Header: oauth_token={{accessToken}}
使用移动SDK(Android)授权后:
URL: https://api.linkedin.com/v1/people/~
Header: Authorization=Bearer {{accessToken}}
Header: x-li-src=msdk
Header: x-li-format=json
这有点混乱,因为每个人以不同的方式完成工作,但是我无法使v1
API在上述3种情况下都能以一般的方式工作。尽管如此,它仍然有效。
但是现在,如何
目前,我仅通过Oauth2 Flow来实现:
URL: https://api.linkedin.com/v2/me?projection=(...)&oauth2_access_token={{accessToken}}
(从我看到的其他人发布的内容来看,他们使用Authorization
标头而不是oauth2_access_token
参数,我想使用标头,但只能使其与参数。如果有人知道如何使其与标头一起使用,我将不胜感激。)
无论如何,我的主要问题是:
如何进行从v1
到v2
的迁移并使其像现在使用v1
一样进行迁移?(使用收到的令牌)从前端以及从移动应用程序中获取信息,并从后端的令牌中检索用户信息,例如我上面使用v1
API发布的3种情况,其中我只能实现第一种,使用Oauth2流)。
答案 0 :(得分:1)
不幸的是,似乎移动和JavaScript SDK已被弃用。看到这里:https://engineering.linkedin.com/blog/2018/12/developer-program-updates
SDK:我们的JavaScript和移动软件开发套件(SDK)将停止工作。开发人员将需要直接从其应用迁移到使用OAuth 2.0。
据我所知,由于OAuth流程仅在浏览器中可用,因此您现在需要踢到网络才能在移动设备上进行身份验证。