错误的要求:尝试将ugc与作者不拥有的资产相关联

时间:2019-01-15 15:24:51

标签: linkedin linkedin-api

我正在尝试将我的应用程序从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。

这是我尝试使用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
}

在尝试共享状态更新或链接附件时,上述请求非常有效。

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

1 个答案:

答案 0 :(得分:1)

我可以确认此问题已由LinkedIn开发人员小组解决。只要经过身份验证的用户已授予w_member_social权限,请按照上述相同的步骤操作,并且应该可以正常工作。

在上一个请求中,我现在收到201 Created响应,标题为X-RestLi-Id,其中包含指向新帖子urn:li:share:6494126499975700480的链接。

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

P.S。如果您要重试旧的请求/已注册的上传,则此操作将无效,因此请确保您尝试使用新资产。我相信该错误是在注册上传内容时出现的。