Ошибка обмена видео API LinkedIn V2 или я что-то пропустил? - PullRequest
0 голосов
/ 20 мая 2019

Я использую конечную точку ugcPost для генерации своих общих ресурсов.

В соответствии с документацией я делаю запрос на предварительную загрузку (с включенными настройками составных частей), и я получаю то, что кажется соответствующим ответом на несколько составных частей на этот запрос.запрос.Тем не менее, абсолютно НЕТ aws-идентификатора ключа или чего-либо еще ... заголовки , упомянутые в примере , не являются теми, которые я получаю после регистрации загрузки как составной.

Они упоминают этоответ на запрос загрузки одной части:

{
  "value": {
      "asset": "urn:li:digitalmediaAsset:C5400AQHpR1ANqMWqNA",
      "mediaArtifact": "urn:li:digitalmediaMediaArtifact:(urn:li:digitalmediaAsset:C5400AQHpR1ANqMWqNA,urn:li:digitalmediaMediaArtifactClass:aws-userUploadedVideo)",
      "uploadMechanism": {
          "com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest": {
              "headers": {
                  "Content-Type": "application/octet-stream",
                  "x-amz-server-side-encryption": "aws:kms",
                  "x-amz-server-side-encryption-aws-kms-key-id": "e10ace24-blah-4977-bar-89foo193e2ab"
              },
              "uploadUrl": "https://video-uploads.s3-accelerate.amazonaws.com/C5400AQHpR1ANqMWqNA/aws-userUploadedVideo?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20180120T000018Z&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-server-side-encryption%3Bx-amz-server-side-encryption-aws-kms-key-id&X-Amz-Expires=86400&X-Amz-Credential=AKIAJYU2MA%2F20180120%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=f7c0756a80998786766588878768778768977687d4c687b3f1a0e8"
          }
      }
   }
}

Однако при регистрации многократной загрузки я получаю нечто подобное:

{
   "value": {
       "uploadMechanism": {
           "com.linkedin.digitalmedia.uploading.MultipartUpload": {
              "metadata": "base64_encoded_metadata",
              "partUploadRequests": [
                  {
                      "headers": {
                          "Content-Length": "5242880",
                          "Content-Type": "application/octet-stream"
                      },
                      "urlExpiresAt": 1558459064787,
                      "byteRange": {
                          "lastByte": 5242879,
                          "firstByte": 0
                      },
                      "url": "https://video-uploads-prod.s3-accelerate.amazonaws.com/ABCD/aws-userUploadedVideo?uploadId=xxx&partNumber=1&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=xxx&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost&X-Amz-Expires=86400&X-Amz-Credential=xxx&X-Amz-Signature=xxx"
                  },
                  {...other_parts...}
               ]
            }
        }
    }
}

Как я понимаю, я долженВыполните итерацию массива partUploadRequests и используйте заголовки, содержащиеся в каждом «чанке», для многоэтапной загрузки.Эти заголовки, которые я получаю ... Я не получаю заголовки "x-amz-server-side-encryption" от LinkedIn, когда запрашиваю его как составное.Поэтому, когда я пытаюсь загрузить чанк, я получаю сообщение об ошибке от amazon, в котором говорится что-то о подписи ...

<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated...(truncated)

У меня не было проблем с выполнением этого запроса вне области многочастных загрузок ..но когда я пытаюсь сделать его многочастным, он терпит неудачу по-королевски.

В соответствии с их API, я ожидал бы получить ошибку 4xx, если у меня не было разрешений для выполнения этого действия ... но я не получаю такую ​​ошибку, я просто не получаюправильные заголовки обратно из LinkedIn?

Это то, что я отправляю в теле первоначального запроса на регистрацию загрузки:

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

В моем приложении есть Marketing Dev.Доступ к платформе, и я придерживаюсь следующих указаний в документации: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/vector-asset-api#register-an-upload

Пока что безуспешно, только при попытке выполнить загрузку из нескольких частей.Мне удалось успешно опубликовать отдельные сообщения с изображениями и статьи типа сообщений ... но загрузка видео ускользает от меня ...

Кто-нибудь, кто может пролить свет на это?

РЕДАКТИРОВАТЬ: Почти сразу после публикации этого сообщения (не показывалось раньше, когда я выполнял поиск ранее), я обнаружил этот вопрос , который, кажется, намекает на то, что этот тип загрузки еще не поддерживается??Пока это имеет вкус ошибок, может ли кто-нибудь еще подтвердить, что это не поддерживается !?

1 Ответ

0 голосов
/ 21 мая 2019

Загрузка видео - ограниченная функция, которая предоставляется только избранным разработчикам.

Источник: https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/ugc-post-api

...