LinkedIn API:OAuth请求中使用的令牌已被撤消

时间:2014-08-25 14:27:37

标签: ios api oauth linkedin

使用linkedin V1 API时出现以下错误:

response body: {
  "errorCode": 0,
  "message": "[unauthorized]. The token used in the OAuth request has been revoked. 75--5cfb9cdb-3c9c-47c2-b3f8-XXXXXXXX",
  "requestId": "I2GQ0ZMWIE",
  "status": 401,
  "timestamp": 1408976297742
}

我在这里使用这个指南,我正在做这个人正在做的事情,但我得到了不同的结果:

https://github.com/PrincessPolymath/LinkedIn-OAuth-Sample-Client

我不知道为什么我 OAuth请求中使用的令牌已被撤销。表示错误。 HTTP请求是相同的。它可能是我的捆绑包ID吗?

我无法从这个问题上找到任何关于。为什么linkedin没有像其他API一样的正常错误代码查找。

以下是两个请求对象的一些照片,一个来自示例,另一个来自我的。

Example app My app

3 个答案:

答案 0 :(得分:4)

我在这里根据我对您所描述的问题的理解进行了猜测,并没有对此进行测试。我也假设你的证件合适......

你应该通过Kamyar Mohager(#39)结账this answer,他解释了如何绕过这个错误:

When obtaining access token, error occurs if:

POST https://www.linkedin.com/uas/oauth2/accessToken

Body:
{
grant_type=authorization_code,
code={auth-code},
redirect_uri={uri},
client_id={id},
client_secret={secret}
}

The error WON'T occur if you obtain the access token by passing the params as query params:

POST https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code={auth-code}&redirect_uri={uri}&client_id={id}&client_secret={secret}

答案 1 :(得分:3)

错误明确指出用户有权使用您正在使用的令牌进行呼叫。

"message": "[unauthorized]. The token used in the OAuth request has been revoked. 75--5cfb9cdb-3c9c-47c2-b3f8-XXXXXXXX",

在您粘贴在上面的两张照片中,我可以看到您的请求对象具有不同的值" tokenKey和tokenSecret"参数比示例请求对象更正确,因为您的请求应该具有从LinkedIn收到的令牌信息。

但我不明白的是为什么两个请求对象都具有相同的值" consumeKey& consumerSecret"参数。我认为你需要使用你的" consumerKey& consumerSecret"用你的" tokenkey& tokensecret"进行此OAuth调用。 "消费者"和#34;令牌"细节组合应该匹配,只有你才能成功进行oauth通话。

我猜您看到了这个错误,因为您将令牌与其他消费者密钥一起使用。

我还能看到你正在传递"验证器"在你的请求对象中因此我想知道你是否打电话来获取"访问令牌"这是oauth的第三站。如果是,则可能存在" requestToken"在你做这个之前就已经过期了#34; access_token"呼叫" requestToken"实际上是一个"临时代币"并迅速过期。

... HTH

答案 2 :(得分:2)

问题是代码重用。

如API的评论中所述,API会在第一次请求时为您提供令牌和密码。这只发生在身份验证期间,然后基本上可以丢弃令牌和机密,并且可以使用developer.linkedin中的一个问题。

我通过构建自己的请求对象而不是依赖oAuth进程中的旧HTTPRequestBody来修复此问题。