验证LinkedIn Access Token时遇ACCESS_DENIED错误的排查与解决
错误原因分析
- API版本与权限不匹配:你调用的LinkedIn v2版本
/me接口需要特定成员权限(如r_liteprofile或r_basicprofile),但当前使用的profile openid email权限属于OpenID Connect流程,无法覆盖v2接口的访问要求,直接导致权限不足。 - 权限更新受限:无法在开发者平台添加新权限,大概率是因为你的应用处于未审核状态。LinkedIn对
r_basicprofile这类权限有审核要求,未通过审核的应用无法申请或启用此类权限。
解决与验证方案
一、适配当前权限的API调用
既然无法新增权限,可改用适配profile openid email权限的OpenID Connect端点获取用户信息,替代v2的/me接口:
- 使用用户信息端点:
https://api.linkedin.com/v2/userinfo - 调用示例:
GET https://api.linkedin.com/v2/userinfo?oauth2_access_token=你的Access Token
二、Access Token验证方法
Token自省验证:
调用LinkedIn的token验证端点,发送POST请求:POST https://api.linkedin.com/v2/introspectToken Content-Type: application/x-www-form-urlencoded token=你的Access Token&client_id=你的客户端ID&client_secret=你的客户端密钥返回结果会包含token的激活状态、权限范围、过期时间等核心信息,可直接判断有效性。
用户信息端点间接验证:
调用上述/v2/userinfo端点,若能正常返回用户数据,说明token有效且权限匹配;若返回权限错误,则token要么权限不足,要么已失效。
三、权限更新补充说明
若后续需使用v2的/me接口,需完成以下步骤:
- 先完成LinkedIn开发者身份验证(个人或企业认证)。
- 在应用权限页面申请
r_liteprofile或r_basicprofile权限,提交审核并说明应用使用场景,待审核通过后即可启用权限。
内容的提问来源于stack exchange,提问作者Matt Morgan
相关产品推荐
相关产品推荐

