OpenID更新后如何通过LinkedIn开发者API获取用户公司名称与职位
解决方法
1. 补充读取职业信息的权限
你当前的权限仅能获取用户姓名、头像、邮箱及社交操作权限,没有读取职业信息的权限。必须在OAuth授权流程的scope参数中添加以下权限之一:
r_liteprofile:获取用户基础职业信息(含职位、公司名称等),是目前最常用的基础读取权限r_basicprofile:更全面的用户资料权限(部分场景需用)
添加后需引导用户重新授权,新获取的access token才会拥有对应权限。
2. 修正API调用端点
你调用的/v2/positions接口不存在,LinkedIn没有单独的职位列表端点。正确做法是调用用户资料接口,并通过projection参数指定需要的字段:
示例代码
const profileResponse = await axios.get('https://api.linkedin.com/v2/me', { headers: { Authorization: `Bearer ${req.session.accessToken}` }, params: { 'projection': '(id,firstName,lastName,positions:(company:(name),title))' } });
该请求会返回用户ID、姓名,以及包含公司名称和职位头衔的职位列表。可根据需求调整projection参数,添加更多字段。
3. 验证权限有效性
重新授权后,可先调用不带参数的https://api.linkedin.com/v2/me,确认返回字段是否包含职业信息;若仍无权限,检查scope参数是否正确添加,且用户已完成重新授权。
内容的提问来源于stack exchange,提问作者Sahil
相关产品推荐
相关产品推荐

