我正在申请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密钥和密钥。
答案 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