将LinkedIn迁移到API v2

时间:2019-01-15 13:17:05

标签: linkedin-api

我正在使用LinkedIn API v1,并看到了公告:

  

所有开发人员都需要将其应用迁移到我们最新的API和OAuth   2.0版将于2019年3月1日发布。

我实现了新的Oauth2 Flow(基本相同,只是将端点和权限r_basicprofile更改为r_liteprofile),并且有效并返回了我在检索访问令牌中使用的代码

获取访问令牌后,我将进行一次调用以返回用户的firstNamelastNameid,并再次调用以获取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中的参数来工作。

在v1中,我正在这样做:

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种情况下都能以一般的方式工作。尽管如此,它仍然有效。

但是现在,如何使用v2 API 获取用户数据?

目前,我仅通过Oauth2 Flow来实现:

URL: https://api.linkedin.com/v2/me?projection=(...)&oauth2_access_token={{accessToken}}

(从我看到的其他人发布的内容来看,他们使用Authorization标头而不是oauth2_access_token参数,我想使用标头,但只能使其与参数。如果有人知道如何使其与标头一起使用,我将不胜感激。)

无论如何,我的主要问题是:

如何进行从v1v2的迁移并使其像现在使用v1一样进行迁移?(使用收到的令牌)从前端以及从移动应用程序中获取信息,并从后端的令牌中检索用户信息,例如我上面使用v1 API发布的3种情况,其中我只能实现第一种,使用Oauth2流)。

1 个答案:

答案 0 :(得分:1)

不幸的是,似乎移动和JavaScript SDK已被弃用。看到这里:https://engineering.linkedin.com/blog/2018/12/developer-program-updates

  

SDK:我们的JavaScript和移动软件开发套件(SDK)将停止工作。开发人员将需要直接从其应用迁移到使用OAuth 2.0。

据我所知,由于OAuth流程仅在浏览器中可用,因此您现在需要踢到网络才能在移动设备上进行身份验证。