使用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一样的正常错误代码查找。
以下是两个请求对象的一些照片,一个来自示例,另一个来自我的。
答案 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来修复此问题。