我已经使用LinkedIn实现了登录,并且access token在成功登录后获得了session.getAccessToken().toString().现在我需要完整的用户个人资料和他的连接列表.但是我无法从LinkedIn检索到这些信息.
我打电话是在规定的REST客户端API调用官方文件这样
https://api.linkedin.com/v1/people/~
在这里,我传递了我oauth2_access_token登录后获得的访问令牌.但作为回应,我得到了
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<error>
<status>401</status>
<timestamp>1440998578838</timestamp>
<request-id>P6GDCHJ13P</request-id>
<error-code>0</error-code>
<message>Unable to verify access token</message>
</error>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过如下所述的各种解决方案:
我知道有些人会发表评论,比如这篇文章重复了这么多问题,但我已经尝试了很多方法来在linkedin Oauth 中实现访问令牌。解释我的尝试。
1) 我正在关注它的官方文档Linkedin Oauth2
2) 我成功地从第 2 步获得授权代码并将该代码传递给第 3 步以交换用于获取访问令牌的授权代码。但我收到以下错误 {"error_description":"缺少必需的参数,包含无效的参数值,参数不止一次。:无法检索访问令牌:appId 或重定向 uri 与授权代码或授权代码不匹配或授权代码已过期”, “错误”:“invalid_request”}
3)根据一些链接,我需要在标题中设置内容类型。缺少告诉设置内容类型的链接
4)然后我尝试调用https://www.linkedin.com/uas/oauth2/accessToken此服务而不是POStto GET。并将数据作为 queryParams 传递。
5) 一些链接说 oauth 代码在 20 秒后过期,所以我已经检查过,我在不到 1 秒的时间内调用访问令牌。
6)如果我像下面这样在 Body params 中传递数据并使用 url 作为 https://www.linkedin.com/uas/oauth2/accessToken
var postData = {
grant_type: "authorization_code",
code: authCode,
redirect_uri: 'https%3A%2F%2Foauthtest-mydeployed-app-url',
client_id: 'my_client_id',
client_secret: 'secret_key'
};
Run Code Online (Sandbox Code Playgroud)
7)Get我试过打电话给我的网址
https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code='+authCode+'&redirect_uri=https%3A%2F%2Foauthtest-mydeployed-app-url&client_id=my_client_id&client_secret=secret_key
即使状态代码为 200,我仍然收到错误,我收到该错误(使用GETapi),如果POSt通过传入postData正文,我收到错误的请求400状态代码
不明白为什么我没有获得访问代码。我已经阅读了很多解决方案。根据要求共享代码。
var postData = { …Run Code Online (Sandbox Code Playgroud)