如何调用LinkedIn API v2?调用/me接口遇403权限不足问题排查
我之前也踩过这个一模一样的坑!LinkedIn的v1和v2 API权限体系是完全独立的,你勾选的那四项默认应用权限都是v1版本的权限,根本无法覆盖v2接口的访问需求。下面是具体的解决步骤:
添加v2版本的必要权限:
登录LinkedIn开发者后台,找到你的应用进入「Auth」标签页,在「Application Permissions」板块添加v2专属权限——访问/me接口至少需要r_liteprofile(获取基础公开资料),如果需要完整个人资料则选r_fullprofile(后者需平台审核)。修改后务必点击「Update」保存设置。重新发起OAuth 2.0授权流程:
你之前获取的auth2_token是基于旧的v1权限生成的,权限范围不包含v2接口所需权限,必须重新走授权流程。注意在授权请求的scope参数里要明确指定v2权限,比如:scope=r_liteprofile让用户(包括你自己)重新授权后,新生成的token才会包含访问v2接口的权限。
验证token的权限范围:
拿到新token后,可以调用https://api.linkedin.com/v2/me/permissions端点检查当前token的权限列表,确认r_liteprofile已经包含在内。再次测试/me接口:
用新的token发起请求,保持请求头X-Restli-Protocol-Version:2.0.0和Authorization:Bearer {新token}不变,这时候应该就能正常返回个人资料数据了。
另外补充一点:如果你的应用要面向其他用户开放,部分v2权限需要提交LinkedIn平台审核才能正式使用,但开发测试阶段用你自己的LinkedIn账号授权就能直接使用。
内容的提问来源于stack exchange,提问作者Hitesh

