无法检索访问令牌linkedin api

时间:2013-03-25 12:41:12

标签: php linkedin

我正在申请connect with linkedin。我正在关注step by step guide。为了对用户进行身份验证,我从this获得了帮助。

当用户点击connect with linkedin按钮时,用户将进入linkedin登录页面。在用户授予帐户访问权限后,用户将被重定向到:

https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=1ba8ogpm9e05&scope=r_basicprofile%20r_emailaddress&state=STATE&redirect_uri=http://127.0.0.1:8088/sandbox/linkedin/test.php

通过这个,我获得了授权码。并将其传递给以下网址

https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=http://127.0.0.1:8088/sandbox/linkedin/final.php&client_id=1ba8ogpm9e05&client_secret=n7GN09I3F2L3IJD1

这里出现错误,即

"error":"invalid_request","error_description":"missing required parameters, includes an invalid parameter value, parameter more then once. : Unable to retrieve access token : appId or redirect uri does not match authorization code or authorization code expired"

我哪里错了?我仔细检查了我的api密钥和密钥。

3 个答案:

答案 0 :(得分:10)

https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=http://127.0.0.1:8088/sandbox/linkedin/final.php&client_id=1ba8ogpm9e05&client_secret=n7GN09I3F2L3IJD1
https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=1ba8ogpm9e05&scope=r_basicprofile%20r_emailaddress&state=STATE&redirect_uri=http://127.0.0.1:8088/sandbox/linkedin/test.php

根据LinkedIn authentication guide

,这两者应包含相同的redirect_uri
  

参数: redirect_uri
  说明:必填。您在上一步中传递的redirect_uri相同   可能的错误:

     
      
  • 与授权代码生成期间使用的redirect_uri不同
  •   
  • 传递无效值
  •   
  • 传递空值或空白值
  •   
  • 缺少参数
  •   

答案 1 :(得分:1)

我遇到了和你一样的错误。我还满足以下条件:

  • 我的请求是POST请求。
  • 我的redirect_uri/authorization/accessToken来电中相同。
  • /accessToken调用在收到授权码后立即执行,所以 它不会过期。

最后我的诀窍是撤销https://www.linkedin.com/secure/developer上应用程序详细信息页面上生成的访问令牌。

这是oAuth 1.a的访问令牌,与当前正在运行的linkedIn api的oAuth 2.0不兼容。
撤销此访问令牌后,我可以使用/authorization/accessToken来调用新的访问令牌。

答案 2 :(得分:0)

您可能还想确保将访问令牌请求作为“POST”发送

Fissh