调用LinkedIn API获取企业主页帖子及评论报403权限不足咨询
企业帖子/评论拉取403问题解决方案
核心错误点
你当前调用失败是几个配置、写法问题叠加导致的:
- 授权scope配置错误:你当前申请的
r_liteprofile/r_emailaddress/w_member_social三个权限,仅支持读取授权用户个人基础信息、发布个人动态,完全没有访问企业主页内容的权限 - 接口参数格式错误:你写的shares接口URL里
q=owners后直接拼接owners=参数,漏了参数分隔符&,本身请求格式就不合法 - 请求头字段拼写错误:鉴权头标准字段名是
Authorization,你写成了Authorized - 补充:你提供的授权回调地址
https//linkedindata.cresol.in里https后漏了冒号,正常应该是https://linkedindata.cresol.in,这个问题会导致授权回调失败
正确调用流程
1. 重新申请授权,补全必需权限
要读取企业主页的帖子和评论,授权时必须新增r_organization_social权限scope,不需要其他多余权限。
注意两个前置校验:
- 你创建的LinkedIn应用必须已经完成企业主体认证,否则申请不了这个scope
- 用来做授权的账号,必须是目标企业主页的内容管理员/超级管理员,普通成员账号就算scope正确也拿不到企业内容的访问权限
授权时scope参数的正确取值为:r_liteprofile r_emailaddress r_organization_social,做URL编码后拼到授权URL里即可,其余client_id、redirect_uri、state参数保持原有配置,记得修正回调地址的冒号问题。
2. 按规范构造鉴权请求头
拿到新的access_token后,所有接口请求的鉴权头严格按以下格式写,不要拼错字段名:
Authorization: Bearer 你拿到的access_token值
注意:Bearer和token值之间要留一个半角空格
3. 拉取企业主页全量帖子
旧版/v2/shares接口字段支持不全,推荐用当前官方主推的UGC内容接口拉取帖子,请求格式:
GET https://api.linkedin.com/v2/ugcPosts 请求参数: q=authors authors=List(urn:li:organization:你的企业数字ID) sortBy=CREATED count=100
参数说明:
q=authors为固定枚举值,代表按发布者维度查询内容authors参数必须用List()包裹企业URN,单企业就传一个,多企业用逗号分隔count为单页返回条数,最大支持100,返回结果中paging.next字段会携带下一页请求地址,循环调用即可拉取全量帖子
如果要兼容旧版shares接口,修正参数后的请求格式为:
GET https://api.linkedin.com/v2/shares?q=owners&owners=urn:li:organization:你的企业数字ID&sortBy=LAST_MODIFIED&sharesPerOwner=100
4. 拉取帖子对应评论列表
拿到帖子的唯一URN(格式为urn:li:ugcPost:xxxxxx,从帖子接口返回的id字段获取)后,调用社交动作接口拉取评论:
GET https://api.linkedin.com/v2/socialActions/帖子完整URN/comments?count=100&sortOrder=REVERSE_CHRONOLOGICAL
参数说明:
- 帖子URN直接作为路径的一部分拼接在
socialActions/后面,不要作为查询参数传递 sortOrder=REVERSE_CHRONOLOGICAL代表按评论发布时间倒序返回,最新评论在前- 单页最大返回100条,同样通过返回结果的
paging.next链接翻页拉取全量评论 - 要拉取评论下的二级回复,只需要把路径里的帖子URN替换成对应评论的URN,保持其余参数不变即可。
避坑提示
- 不要用普通员工账号授权生成的token调用企业内容接口,一定会返回权限不足
- 每次调整scope配置后,都要重新走一遍授权流程拿新的token,旧token不会自动新增权限
- 如果所有配置都正确还是返回403,去开发者后台检查应用的企业认证状态,以及对应权限是不是已经审核通过
内容的提问来源于stack exchange,提问作者Deepak Goud
相关产品推荐
相关产品推荐

