使用LinkedIn API带图回复评论报错及协议版本问题咨询
解决LinkedIn API评论带图回复的400错误及协议版本问题
一、修复「Comment media object must have either urn or image url, had neither」400错误
这个错误直接说明你请求体里的媒体参数不符合要求——必须给每个媒体对象提供imageUrl(公开可访问的图片链接)或者urn(已通过LinkedIn媒体上传API获取的媒体资源标识),二者选其一即可。
正确请求体示例
用公开图片URL的情况
{ "actor": "urn:li:person:你的用户URN", "message": { "text": "你的评论内容" }, "media": [ { "status": "READY", "description": { "text": "图片描述" }, "originalUrl": "https://example.com/your-image.jpg", "media": { "title": { "text": "图片标题" }, "image": { "imageUrl": "https://example.com/your-image.jpg" } } } ] }
用已上传媒体URN的情况
如果已经通过https://api.linkedin.com/rest/mediaUploads接口上传图片并拿到了URN,请求体可以写成:
{ "actor": "urn:li:person:你的用户URN", "message": { "text": "你的评论内容" }, "media": [ { "status": "READY", "description": { "text": "图片描述" }, "media": { "title": { "text": "图片标题" }, "id": "urn:li:digitalmediaAsset:你的媒体URN" } } ] }
注意:imageUrl必须是全网可直接访问的链接,不能用本地路径或需要权限验证的地址;媒体URN必须是通过LinkedIn官方上传流程获取的有效标识。
二、修复X-Restli-Protocol-Version 2.0.0语法异常
出现语法异常大概率是请求头设置格式错误,按以下步骤排查:
- 检查键名拼写:确认是
X-Restli-Protocol-Version,不要写错大小写或漏字符 - 检查值的格式:直接写
2.0.0即可,不需要加引号或额外符号 - 如果你用Postman、curl这类工具,确保键值对是分开设置的,不要把键和值写在同一行导致格式混乱
比如curl里的正确写法:
curl --location 'https://api.linkedin.com/rest/socialActions/urn:li:share:*******/comments' \ --header 'X-Restli-Protocol-Version: 2.0.0' \ --header 'Authorization: Bearer 你的访问令牌' \ --header 'Content-Type: application/json' \ --data-raw '上述正确的请求体内容'
另外确认你的API端点是正确的,v2版本的评论回复端点确实是https://api.linkedin.com/rest/socialActions/{shareURN}/comments,不要混淆成v1版本的端点。
内容的提问来源于stack exchange,提问作者Sukanya Naik
相关产品推荐
相关产品推荐

