UgcPost“成功”,但返回的URN不存在-除非您先等待

时间:2019-04-09 07:26:24

标签: linkedin linkedin-api

我尝试使用v2 API在LinkedIn上“共享”图片和文字。 问题是有时这样不存在共享,但是上传时没有错误消息。

如果在引用的资产处于可用状态之前调用ugsPosts,则该调用将返回201 Created,其ID为urn,但未创建共享。

我们正在通过https://api.linkedin.com/v2/assets?action=registerUpload上传图片,然后使用其提供的链接来实际发布图片。

如果我们随后尝试立即通过https://api.linkedin.com/v2/ugcPosts发布共享,它将返回201创建状态,其ID标签为:“ urn:li:share:”,该标签不存在。如果手动转到用户的个人资料,则不会发布任何共享,并且如果尝试构建类似https://www.linkedin.com/feed/update/urn:li:share的链接,则指向无内容。

我们提出的唯一解决方案是在调用ugcPosts之前先轮询https://api.linkedin.com/v2/assets/直到状态为AVAILABLE。但是,这不能很好地扩展,因为检查状态的调用次数限制与创建图像的调用次数相同。 ugcPosts创建帖子失败时返回201创建的错误吗? 有没有一种正式的方法可以创建指向创建的共享的链接,我们希望在帖子完成后向用户显示“查看共享”按钮?

我们当前必须在发布共享之前对图像资产进行轮询以使其变为“可用”。

当我们打电话时 https://api.linkedin.com/v2/assets?action=registerUpload 然后直接 https://api.linkedin.com/v2/ugcPosts 结果始终为“ 201 Created”,但共享并不总是可用。

问题似乎是,如果您调用https://api.linkedin.com/v2/ugcPosts,则在图像状态可用之前(通过轮询https://api.linkedin.com/v2/assets/),共享将无法使用。

如果在所有资产“可用”之前调用ugcPosts,我希望所有资产都可用时它就可以使用。

第二个最佳选择是在这种情况下至少遇到错误。

如果您需要轮询可用的资产,则应在文档中提及(也许可以,但是我找不到),并且每天的配额中不应包含轮询请求。

1 个答案:

答案 0 :(得分:1)

所以官方的答案是:

如果您使用https://api.linkedin.com/v2/assets?action=registerUpload上传图像(或其他资产),则需要使用https://api.linkedin.com/v2/assets/进行轮询并等待它们变为“可用”,然后才能在{{3 }}。 否则,该帖子会说它成功,但将无法正常工作。