我尝试使用 v2 API 在 LinkedIn 上“分享”图像+文本。 问题是这样有时会导致共享不存在,但上传时却没有报错。
如果在引用的 Assets 处于 AVAILABLE 状态之前调用 ugsPosts,调用将返回 201 Created with an id urn,但不会创建共享。
我们正在通过 https://api.linkedin.com/v2/assets?action=registerUpload 上传图片然后使用它提供的链接实际发布图像。
如果我们随后尝试通过 https://api.linkedin.com/v2/ugcPosts 发布分享立即,它将返回 201 Created 状态,带有一个 id 标签:“urn:li:share:”,它不存在。如果手动转到用户的个人资料,则没有发布共享,并且如果尝试构建类似 https://www.linkedin.com/feed/update/urn:li:share 的链接: 它没有任何意义。
我们想出的唯一解决方案是轮询https://api.linkedin.com/v2/assets/在调用 ugcPosts 之前,直到状态为 AVAILABLE。然而,这并不能很好地扩展,因为检查状态的调用次数限制与创建图像的调用次数限制相同。 ugcPosts 在创建帖子失败时返回 201 Created 是一个错误吗? 是否有官方方法可以创建指向已创建共享的链接,我们希望在帖子完成后向用户显示一个“查看共享”按钮?
我们目前必须在发布共享之前轮询图像 Assets 是否变为“可用”。
当我们打电话 https://api.linkedin.com/v2/assets?action=registerUpload 然后直接 https://api.linkedin.com/v2/ugcPosts 结果总是“201 已创建”,但共享并不总是可用。
问题似乎是,如果您调用 https://api.linkedin.com/v2/ugcPosts , 在图像状态为 AVAILABLE(通过轮询 https://api.linkedin.com/v2/assets/ )之前,共享将不起作用。
如果在所有 Assets “可用”之前调用 ugcPosts,我会期望它在所有 Assets 都“可用”时可用。
第二个最佳选择是,如果您至少在这种情况下遇到错误。
如果您需要轮询 Assets 以使其可用,则应在文档中提及(也许是,但我找不到)并且轮询调用不应包含在您的每日配额中。
最佳答案
所以官方的回答是:
如果您使用 https://api.linkedin.com/v2/assets?action=registerUpload 上传图片(或其他 Assets ) ,您需要使用 https://api.linkedin.com/v2/assets/ 进行轮询并等待它们变为“AVAIALBLE”,然后您才能在 https://api.linkedin.com/v2/ugcPosts 的帖子中引用它们. 否则帖子会说成功了,但是不行。
关于linkedin - UgcPost ‘succeeds’ ,但返回的 URN 不存在 - 除非你先等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55587240/