LinkedIn API V2访问privatePlayableStreams遇权限问题:500/403错误
解决LinkedIn API V2获取privatePlayableStreams的错误问题
首先我得指出你请求里的一个低级拼写错误——请求头里的Accet应该是Accept,这个小失误很可能直接导致服务器无法正确解析你的请求,进而引发500错误,先把这个修正过来:
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer <my token>' 'https://api.linkedin.com/v2/adCreativesV2/62119114?projection=(variables(data(com.linkedin.ads.TextAdCreativeVariables(vectorImage~(privatePlayableStreams)))))' | json_pp
接下来针对URN解析失败和权限问题,咱们逐一排查:
1. 确认令牌的权限范围
403错误基本都是权限不足导致的。要访问广告创意的媒体资产数据,你的访问令牌必须包含至少一个广告相关的scope:
r_ads:用于只读访问广告数据rw_ads:用于读写广告数据
你可以调用这个接口验证当前令牌的权限:
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer <my token>' 'https://api.linkedin.com/v2/me'
返回结果里的scope字段会列出当前令牌拥有的权限,确保包含上述广告相关的权限项。
2. 修正投影语法
LinkedIn API V2的投影语法里,展开嵌套实体需要用~(fields)的格式,你原来写的vectorImage~:privatePlayableStreams里的冒号是错误的,改成括号才能正确展开vectorImage下的privatePlayableStreams字段,修正后的投影参数已经包含在最上方的curl命令里了。
3. 验证Digital Media Asset URN的有效性
返回的vectorImage URN(urn:li:digitalmediaAsset:C560EAQFjbUgC1TlCcw)可能存在无效或不属于当前授权账户的情况。你可以单独调用Digital Media Assets接口验证这个URN:
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer <my token>' 'https://api.linkedin.com/v2/digitalMediaAssets/C560EAQFjbUgC1TlCcw?projection=(privatePlayableStreams)'
如果这个请求也报错,要么是URN本身无效,要么是你的令牌没有访问该媒体资产的权限,得确认该资产是否属于你授权的广告账户。
4. 处理500服务器错误
如果修正上述问题后仍出现500错误,大概率是LinkedIn服务器的临时故障:
- 间隔1-2分钟重试几次请求
- 检查响应头的
X-RateLimit-Remaining字段,确认是否超出了API调用速率限制
内容的提问来源于stack exchange,提问作者Oksana Gritsjuk
相关产品推荐
相关产品推荐

