Python调用LinkedIn API获取企业主页指标时access_token无效咨询
LinkedIn企业主页运营数据拉取接口鉴权失败排查方案
你的Bearer token请求头写法本身没有问题,返回token无效基本是以下几个容易踩的坑,逐个排查即可:
- 首先补全强制要求的请求头。现在Marketing Developer Platform的所有v2接口强制要求加
LinkedIn-Version版本头,缺这个头哪怕token完全正确,也会返回鉴权类错误,版本值用最近的稳定版本号即可,比如202405。 - 不要裸调
/v2/posts接口。这个接口不支持无参数拉取全量内容,无参数请求会直接返回权限/令牌无效类报错。拉取企业主页帖子数据必须带查询参数:指定q=author,同时传入企业主页对应的URN作为author参数值,格式为urn:li:organization:{你的企业主页数字ID}。另外要确认生成token时完成OAuth授权的账号,是该企业主页的正式管理员(至少拥有内容查看/运营权限),哪怕token带了r_organization_social权限,授权账号不是主页管理员也会鉴权失败。
可直接运行的正确请求示例:import requests access_token = "你的access_token" organization_id = "你的企业主页数字ID" headers = { "Authorization": f"Bearer {access_token}", "X-Restli-Protocol-Version": "2.0.0", "LinkedIn-Version": "202405", "cache-control": "no-cache" } request_params = { "q": "author", "author": f"urn:li:organization:{organization_id}", "fields": "id,createdAt,likesSummary,commentsSummary,sharesSummary,totalShareCount" } resp = requests.get( "https://api.linkedin.com/v2/posts", headers=headers, params=request_params ) print(resp.json()) - 排查token的授权主体问题。你提到token有效期11个月,这类长有效期token是MDP的企业授权token,生成时必须完成对应企业实体的授权绑定,如果你是在应用后台直接生成的个人测试token,哪怕scope里显示有
r_organization_social,也没有对应企业的数据访问权限,调用接口会报无效。
快速验证方法:用同样的请求头调用https://api.linkedin.com/v2/me,如果能正常返回授权账号的个人信息,说明token本身格式有效,问题出在企业权限绑定、请求参数或者请求头缺失上;如果连这个接口都报无效,检查OAuth生成流程里的client_id、client_secret是否和MDP应用配置一致,有没有拼错scope参数。 - 长期自动化调用不需要手动复制token。走标准OAuth2.0授权流程时,除了access_token还会拿到refresh_token,access_token到期前用refresh_token调用token接口即可自动换新,MDP的refresh_token有效期1年,到期前重新让企业管理员走一次授权流程即可续期,完全可以支撑常态化数据采集。
排查提示:如果接口返回的状态码是403而非401,本质是权限范围不匹配,不是token本身失效,不用反复生成新token,优先检查上面提到的版本头、请求参数、管理员角色、企业绑定这几个项即可。
内容的提问来源于stack exchange,提问作者novkam
相关产品推荐
相关产品推荐

