调用LinkedIn API获取组织头像遇403权限不足问题求助
我尝试调用以下API获取已认证用户关联组织的头像:
https://api.linkedin.com/v2/organizationalEntityAcls?q=roleAssignee&projection=(elements*(organizationalTarget~(localizedName,profilePicture)))
但返回403权限错误:
{"elements":[{"organizationalTarget!":{"serviceErrorCode":100,"message":"not enough permissions to access field profilePicture for GET /organizationsLookup","status":403},"organizationalTarget":"urn:li:organization:93086400"},{"organizationalTarget!":{"serviceErrorCode":100,"message":"not enough permissions to access field profilePicture for GET /organizationsLookup","status":403},"organizationalTarget":"urn:li:organization:73873422"}]}
当前用户已授权的权限范围:
r_liteprofile w_member_social r_emailaddress rw_organization_admin r_organization_admin r_organization_social
移除profilePicture字段后请求可正常返回结果,请问该权限问题的原因是什么?
问题原因及解决方案
你缺少访问组织profilePicture字段所需的**r_organization_profile权限**。
LinkedIn API对不同类型的组织数据做了明确的权限拆分:
- 你现有的
r_organization_social仅能访问组织社交动态类数据,rw_organization_admin/r_organization_admin是组织管理权限,都不覆盖组织基本资料(包括头像)的读取权限。 - 通过
organizationalEntityAcls的扩展查询(organizationalTarget~)拉取组织头像时,必须持有r_organization_profile权限才能访问profilePicture字段。
解决方法很直接:向用户申请添加r_organization_profile权限,获取该权限后重新发起请求即可正常拿到组织头像数据。
内容的提问来源于stack exchange,提问作者Jamie

