错误请求:试图将 ugc 与不属于作者的资产相关联

Bad request: Attempting to associate a ugc with an asset that's not owned by the author

我正在尝试将我的应用程序从 LinkedIn API v1 迁移到 v2。我目前正在考虑将图像(本地)分享到我的个人 LinkedIn 个人资料。

我在这里关注官方文档:https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/share-on-linkedin#create-an-image-share

为了注册图像,我提出了以下 POST 请求:至 https://api.linkedin.com/v2/assets?action=registerUpload

{
    "registerUploadRequest": {
        "recipes": [
            "urn:li:digitalmediaRecipe:feedshare-image"
        ],
        "owner": "urn:li:person:9PyfTxBTFY",
        "serviceRelationships": [
            {
                "relationshipType": "OWNER",
                "identifier": "urn:li:userGeneratedContent"
            }
        ]
    }

}

我收到成功响应:

{
    "value": {
        "uploadMechanism": {
            "com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest": {
                "headers": {},
                "uploadUrl": "https://api.linkedin.com/mediaUpload/C4D22AQEGOHxBzKUXvw/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQLhYJm0KOaTCgAAAWhSDplI-Lzlfh7lOsd8D5qBcz0aJ2bf1fwIfnh8ow&app=5212106&sync=0&v=beta&ut=0rKn179ebIA8A1"
        }
    },
    "mediaArtifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw,urn:li:digitalmediaMediaArtifactClass:feedshare-uploadedImage)",
    "asset": "urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw"
    }
}

我使用返回的 uploadUrl 成功上传了二进制图像:

curl -i --upload-file PATH_TO_FILE --header "Authorization: Bearer TOKEN" 'https://api.linkedin.com/mediaUpload/C4D22AQEGOHxBzKUXvw/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQLhYJm0KOaTCgAAAWhSDplI-Lzlfh7lOsd8D5qBcz0aJ2bf1fwIfnh8ow&app=5212106&sync=0&v=beta&ut=0rKn179ebIA8A1'

为确认图像已准备好使用,我使用返回的 GET https://api.linkedin.com/v2/assets/C4D22AQEGOHxBzKUXvw 检查了资产的状态

{
    "serviceRelationships": [
        {
            "identifier": "urn:li:userGeneratedContent",
            "relationshipType": "OWNER"
        }
    ],
    "recipes": [
       {
            "recipe": "urn:li:digitalmediaRecipe:feedshare-image",
            "status": "AVAILABLE"
        }
    ],
    "mediaTypeFamily": "STILLIMAGE",
    "created": 1547564914979,
    "lastModified": 1547564994321,
    "id": "C4D22AQEGOHxBzKUXvw",
    "status": "ALLOWED"
}

根据文档,我现在可以简单地引用 UGC 中的资产 URN post。

这是测试图像 post 我正在尝试使用 https://api.linkedin.com/v2/ugcPosts 端点

进行分享
{
    "author": "urn:li:person:9PyfTxBTFY",
    "lifecycleState": "PUBLISHED",
    "specificContent": {
        "com.linkedin.ugc.ShareContent": {
            "shareCommentary": {
                "text": "Testing LinkedIn image shares"
            },
            "shareMediaCategory": "IMAGE",
            "media": [
                {
                    "status": "READY",
                    "description": {
                        "text": "Some text"
                    },
                    "media": "urn:li:digitalmediaAsset:C4D22AQEGOHxBzKUXvw",
                    "title": {
                        "text": "Some title"
                    }
                }
            ]
        }
    },
    "visibility": {
        "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
    }
}

但我一直收到错误消息:

{
    "message": "Attempting to associate a ugc with an asset that's not owned by the author",
    "status": 400
}

上述请求在尝试共享状态更新或 link 附件时完美运行。

我还没有用视频尝试过(类似的方法),因为我认为我会遇到同样的问题。我也没有尝试过作为组织共享,因为我需要先被 LinkedIn 营销开发人员计划接受。

我可以确认 LinkedIn 开发团队已解决此问题。按照与上述相同的步骤操作,只要经过身份验证的用户已授予 w_member_social 权限,它就应该可以正常工作。

在上次请求中,我现在得到 201 Created 响应,其中 header X-RestLi-Id 包含 link 到新的 post urn:li:share:6494126499975700480 .

https://www.linkedin.com/feed/update/urn:li:share:6494126499975700480

P.S。如果您是 re-trying 旧请求/已注册上传,它将无法正常工作,因此请务必尝试使用新资产。我认为错误是在注册上传时出现的。