Q:Linkedin Vector Assest API,注册分段上传 - 没有响应中的元数据值

问题描述 投票:0回答:2

我正在尝试使用 Linkedin V2 Vector Assets 完成分段上传,我注意到在注册上传时,

metadata
字段在响应中返回空白。

这里是注册上传的请求

https://api.linkedin.com/v2/assets?action=registerUpload

{
    "registerUploadRequest":{
        "owner":"urn:li:organization:71736744",
        "recipes":["urn:li:digitalmediaRecipe:feedshare-video"],
        "serviceRelationships":[
            {"identifier":"urn:li:userGeneratedContent","relationshipType":"OWNER"}
        ],
        "supportedUploadMechanism":["MULTIPART_UPLOAD"],
        "fileSize":50866165
}

这是响应(删除了除一个 partUploadRequests 对象之外的所有对象以使响应更易于阅读)

{
"value": {
    "uploadMechanism": {
        "com.linkedin.digitalmedia.uploading.MultipartUpload": {
            "partUploadRequests": [
                {
                    "headers": {
                        "Content-Type": "application/octet-stream"
                    },
                    "byteRange": { "lastByte": 4194303, "firstByte": 0 },
                    "url": "https://www.linkedin.com/dms-uploads/C5605AQFnYcNsf7K5Yw/uploadedVideo?sau=aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2FtYnJ5L2FtYnJ5LXZpZGVvLz94LWxpLWFtYnJ5LWVwPUFRRmp4SlBwRndkUUNnQUFBWGhjYkgwNzNuZmpacTRFM3AxUkpidTMxTlAxems3WmdoUHN1Ymp1TjVGTXVDRGFOaGczVnpHWXNpLW5OYWh2NlkxWkU5UDVIdktsQ2JxbGhhOUt1SElJSnBXTjI0TkEyWDIzM1ZiaS1aNW4yTmlXWWQyX1VlN1J2d0FEdkMwSG51ckNMY1ljMkdrczhKclFlZHRYNlZNN2dvTFJad2hpT0pxcFNZM29mXzdTTmRhZjZzQlNMS3FwaTJyWF9LYTRqTk9OcnBhTFpCam1KR3ZENEV3ZFd0VHEzNm44aEFQbDhCMmc3cVpOd3Q0Ny1TT1ZvcHRoT0dWcTB0cHAxU2VkbkY2aVNVQ3J6RVlwVHdzNDZTQlViME5HbGxITHo4a1ZNOGJxYkJjMDVCc054MDQ2ZDktZWdGb2RFa3ZKRmxsU0NRWFV2ZzdQb3VFaVNodkZtSHRYVHhLLWlkbnpKWjlQN1Q2b1ROQWJhWE5iR2g2QUdBQmQ3VVdjNkdGb01YaWFiazBhRlA4UzNpUXNlM05ISFNVdkFBdk1nSnV2a0xxWV9oYU1VTXdoeXFRT0w1a0NLM1NSd2RXTnpKSHZLMkhfY0ZqclYzcnB4VXJZckkxbUZ2QVl2Y3dUcVYyaDhWWHRpY1luNTA0am1jUjN3U0M5RVVQZEo2RFZEd1RJRmFvOTJYcmszbTFNS2pSRlFZMV94enVHZVk4SERKWTQwbDQySVRJNXlCLUp3b2V3Vjl3RGduOTZycmhoY1pLa0VOck5vdUZ4eDdodlBTNkZUVXcweXJWM3BaOUF5X2NtaHBXTVpwOVRFY0pJcGY3elFrQTF3ZFcyR3VIcEtGLUF4MldTZTdlR1pCOTdHaU5vLW9XamhkV2stR2MzNFh5UjFwckZsTF9sSFFUWU40S2pNLUI2Y2poZHFJV2xVTll6Z1lVaXdwNld2UEYwVFRObW5kQVgtTTBlX1VsaGFOQ190SDFEcG9Kem5IZExoN3IxMGk5VWE4MGpsZ3pDQzBsT3JKSkxuSEcwNm9jVzNJSzctT3NSZGhBSEFNdTBuWDNRdlhfSFoxWXpfNXgza3dyZzBPOVlmN2xIUFFiVW1lYllReUlJaGdxOEE1blpxVUxzeUpvZElLWk5WdUdlcjVuN21jTFV4TzRtNlBUczVtc3pHS0x4Z3o4b2FDdVNiWWliYzh2NkpxQktiN2RmejdnQWRFVVpfNnRLenVxUm11bGk5OGZVSVpOR3hfc3R1Mk9nVDYzYXRoQmZnRHQ0dGpnVi1BOWlaVXdtYWNLckxwVE5wNUdHZlBxZjhLaE1MZC1BVXotSVNoX19jRUlzM2laSXlpeC1pNlFpeGZyRmpxQnYwaDhwOGZpeXZ0Q2Job0xjU1g4aWNjX0lSX28xQXR0UmZB&pn=1&m=616825227&app=86804616&sync=0&v=beta&ut=1nBLJxAvwH5FI1",
                    "urlExpiresAt": 1616544717116
                } ...
            ],
            "metadata": ""
        }
    },
    "asset": "urn:li:digitalmediaAsset:C5605AQFnYcNsf7K5Yw",
    "mediaArtifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C5605AQFnYcNsf7K5Yw,urn:li:digitalmediaMediaArtifactClass:uploadedVideo)"
}

}

api文档说明我需要使用注册上传响应中的元数据值来完成上传

无论如何我都尝试在没有元数据字段值的情况下发出请求

https://api.linkedin.com/v2/assets?action=completeMultiPartUpload
(删除了除一个 partUploadResponses 对象之外的所有对象以使响应更易于阅读)

{
"completeMultipartUploadRequest": {
    "mediaArtifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C5605AQFnYcNsf7K5Yw,urn:li:digitalmediaMediaArtifactClass:uploadedVideo)",
    "metadata": "",
    "partUploadResponses": [
        {
            "headers": {
                "ETag": "/ambry-video/signedId/AQGpSasdC3ezCgAAAXhcbTobXlB6_ujllr8BPUUAX4o9OgbHCxiRKoG9woM85dnGrxbUbd-5IXyMKO7syqyZXLgHFd8GQJkiMvvp1eHI9N32iJqMG-l_aFgSeXMbcqkFFcjuT22djM93dmKs_RBb58kppS3CadOPHSt5_tApCxAq0wgTfYQng3OkV_uVRdjIYftyfnHW3nF2vWz4hZBoX-YhmF6gDhXtN9dNTnU4QpHB7sGCecpjYgT8ypV-u5isvFrujHl3tl4.bin"
            },
            "httpStatusCode": 200
        } ....
    ]
}

}

这作为 200OK 返回,没有任何预期的响应主体。

之后我检查上传状态,返回代码为

SERVER_ERROR
,我无法使用上传资产的
asset id
创建帖子。 检查资产状态的响应
https://api.linkedin.com/v2/assets/C5605AQFnYcNsf7K5Yw

{
"recipes": [
    {
        "recipe": "urn:li:digitalmediaRecipe:feedshare-video",
        "status": "SERVER_ERROR"
    }
],
"serviceRelationships": [
    {
        "relationshipType": "OWNER",
        "identifier": "urn:li:userGeneratedContent"
    }
],
"mediaTypeFamily": "VIDEO",
"created": 1616458317042,
"id": "C5605AQFnYcNsf7K5Yw",
"lastModified": 1616458454711,
"status": "ALLOWED"

}

请求使用资产创建 UGC 帖子

https://api.linkedin.com/v2/assets

{
"author": "urn:li:organization:71736744",
"lifecycleState": "PUBLISHED",
"specificContent": {
    "com.linkedin.ugc.ShareContent": {
        "media": [
            {
                "media": "urn:li:digitalmediaAsset:C5605AQFnYcNsf7K5Yw",
                "status": "READY",
                "title": {
                    "attributes": [],
                    "text": "Sample Video Create"
                }
            }
        ],
        "shareCommentary": {
            "attributes": [],
            "text": "Some share text"
        },
        "shareMediaCategory": "VIDEO"
    }
},
"visibility": {
    "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"
}

回应请求

{
"serviceErrorCode": 0,
"message": "Resource assets does not exist",
"status": 404}

我唯一能想到的是,因为在完成上传时我没有元数据值,所以我无法在 UGC 帖子中使用视频资产。有人遇到过类似的问题吗?

进一步调查 在进一步调查中,API 文档中的示例也不返回

metadata
字段。所以这就是我认为可能发生的事情

  • 我没有正确上传文件块,完成上传不需要
    metadata
    字段。
  • API 有一个错误,阻止它在注册分段上传时返回元数据字段。
linkedin linkedin-api
2个回答
1
投票

想通了,当使用 slice 方法将文件分成块时,它需要

file.slice(firstByte, lastByte + 1)

注册上传请求中的元数据值似乎也不需要完成上传。


0
投票

如果有人遇到与 Linkedin API 相关的类似问题,请在此处添加: Linkedin API - 拆分文件分块不起作用

© www.soinside.com 2019 - 2024. All rights reserved.