You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LinkedIn V2 API权限不足求助:调用/me接口返回403错误

解决LinkedIn V2 API /me接口403权限不足问题

看起来你遇到的问题主要来自两个关键点:V2 API的权限范围和V1不兼容,以及混淆了授权码和Access Token的使用,下面一步步帮你解决:


1. 替换为V2兼容的权限范围

LinkedIn V2 API不再支持V1的r_basicprofile权限,调用/me接口需要使用V2专属权限:

  • 若仅需基础用户信息(如姓名、头像、ID),使用r_liteprofile
  • 若需更详细的个人资料,使用r_fullprofile
  • 邮箱权限r_emailaddress在V2中仍可用,但需配合投影参数(projection)才能在/me接口中返回

所以你需要把授权请求中的scope替换为:
&scope=r_liteprofile%20r_emailaddress%20rw_company_admin%20w_share

2. 修正OAuth2令牌的使用流程

你当前的代码犯了一个OAuth2常见错误:直接将授权码(authCode)作为Bearer令牌使用。授权码只是用来交换Access Token的临时凭证,正确流程是:

第一步:用授权码交换Access Token

// 先交换授权码获取Access Token
var tokenClient = new RestClient("https://www.linkedin.com/oauth/v2/accessToken");
var tokenRequest = new RestRequest(Method.POST);
tokenRequest.AddParameter("grant_type", "authorization_code");
tokenRequest.AddParameter("code", authCode); // 传入你的授权码
tokenRequest.AddParameter("redirect_uri", "你的回调地址"); // 必须和授权请求时的一致
tokenRequest.AddParameter("client_id", "你的应用Client ID");
tokenRequest.AddParameter("client_secret", "你的应用Client Secret");

var tokenResponse = tokenClient.Execute(tokenRequest);
// 解析响应获取access_token(可使用Json.NET等库)
var tokenData = JsonConvert.DeserializeObject<dynamic>(tokenResponse.Content);
string accessToken = tokenData.access_token;

第二步:用Access Token调用/me接口

var client = new RestClient("https://api.linkedin.com/v2/");
var request = new RestRequest("me", Method.GET);
// 这里使用交换后的accessToken,而非授权码!
request.AddHeader("authorization", $"Bearer {accessToken}");
// 若需返回邮箱,添加projection参数(需r_emailaddress权限)
request.AddParameter("projection", "(id,firstName,lastName,emailAddress)");

var response = client.Execute(request);
ViewBag.Message = "output: " + response.Content;

3. 确认应用权限配置

登录LinkedIn开发者后台,检查你的应用是否已启用r_liteprofile(或r_fullprofile)和r_emailaddress这些V2权限,且用户在授权时确实同意了这些权限。


关于你提到的三方授权(Three-Legged Authorization),LinkedIn V2官方文档中有完整说明,核心就是上述的授权码流程,涵盖从引导用户授权、获取授权码到交换令牌的全步骤,你可以在开发者平台的V2授权章节找到详细内容。

最后再核对两个常见坑:

  • 确保授权请求的回调地址和交换令牌时的完全一致
  • V2 API的端点域名是api.linkedin.com/v2/,和V1的api.linkedin.com/v1/区分开

内容的提问来源于stack exchange,提问作者Gordo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:15:57