如何通过LinkedIn API获取完整个人资料?请求邮箱等信息失败排查
LinkedIn API 获取个人资料问题排查方案
核心问题拆解与解决
调用https://api.linkedin.com/v2/me?projection=(email)返回空对象,以及无法获取完整个人资料的问题,可从以下几个硬规则和细节点排查:
1. 邮箱字段的API端点错误
/v2/me接口不返回邮箱数据,邮箱必须单独调用专属接口:
GET https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))
这是LinkedIn V2 API的固定规则,和projection参数无关。
2. Projection参数格式错误
若要通过/v2/me获取教育、工作经历等信息,需严格遵循LinkedIn的参数格式要求:
- 嵌套字段需用正确的闭合括号
- 字段名必须匹配API定义(如教育经历是复数
educations,不能写单数education)
示例:获取基础信息+教育经历的正确请求:
GET https://api.linkedin.com/v2/me?projection=(id,firstName,lastName,educations*(id,schoolName,fieldOfStudy,startDate,endDate))
3. 权限范围的实际有效性
即使你确认配置了权限,也要验证令牌(Token)的scope是否包含以下必要项:
r_liteprofile:基础个人资料权限r_emailaddress:邮箱权限r_fullprofile:完整教育、工作、技能资料权限
可通过JWT解析工具解码令牌,查看实际包含的scope,避免配置和实际令牌权限不匹配。
4. 请求头规范缺失
调用V2 API必须携带两个强制请求头:
Authorization: Bearer {你的令牌}X-Restli-Protocol-Version: 2.0.0
缺少后者会导致projection参数解析失败,返回异常结果。
完整获取个人资料流程示例
- 调用
/v2/me获取基础信息及关联数据ID:
GET https://api.linkedin.com/v2/me?projection=(id,firstName,lastName,educations,experiences,skills)
- 调用专属接口获取邮箱:
GET https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))
- 如需更详细的教育、工作、技能信息,可在projection中直接嵌套展开字段,或通过返回的关联ID调用对应详情接口。
内容的提问来源于stack exchange,提问作者Marc Pont
相关产品推荐
相关产品推荐

