Node.js 使用ugc post api在linkedin页面上发布视频

Node.js 使用ugc post api在linkedin页面上发布视频,node.js,curl,linkedin,linkedin-api,Node.js,Curl,Linkedin,Linkedin Api,LinkedIn视频发布始终失败,出现“内部服务器错误”,状态:500。我正在使用node.js。我从两天开始就在努力,但解决不了这个问题。我认为当我试图使用curl请求上传视频时,它没有正确上传。这是我的密码 const url = path.join(__dirname, `/../storage/SocialAttachments/${filename}`); const mediaData = { registerUploadRequest: { owner: fou

LinkedIn视频发布始终失败,出现“内部服务器错误”,状态:500。我正在使用node.js。我从两天开始就在努力,但解决不了这个问题。我认为当我试图使用curl请求上传视频时,它没有正确上传。这是我的密码

const url = path.join(__dirname, `/../storage/SocialAttachments/${filename}`);
const mediaData = {
    registerUploadRequest: {
      owner: foundPage.pageId,
      recipes: [
        'urn:li:digitalmediaRecipe:feedshare-video'
      ],
      serviceRelationships: [
        {
          identifier: 'urn:li:userGeneratedContent',
          relationshipType: 'OWNER'
        }
      ]
    }
  };
  axios.post(encodeURI('https://api.linkedin.com/v2/assets?action=registerUpload'), mediaData, { headers: { Authorization: `Bearer ${foundLdAccount.token}`, 'Content-Type': 'application/json' } }).then(response => {
    if (response.data.value && response.data.value.asset && response.data.value.uploadMechanism && response.data.value.uploadMechanism['com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest'] && response.data.value.uploadMechanism['com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest'].uploadUrl) {
      exec(`curl -v -H "Content-Type:application/octet-stream" --upload-file ${url} "${response.data.value.uploadMechanism['com.linkedin.digitalmedia.uploading.MediaUploadHttpRequest'].uploadUrl}"`, (error, stdout, stderr) => {
        if (error) {
          const postData = {
            author: foundPage.pageId, // organization urn
            lifecycleState: 'PUBLISHED',
            specificContent: {
              'com.linkedin.ugc.ShareContent': {
                media: {
                  media: response.data.value.asset,
                  status: 'READY'
                },
                shareCommentary: {
                  text: req.body.message
                },
                shareMediaCategory: 'VIDEO'
              }
            },
            visibility: {
              'com.linkedin.ugc.MemberNetworkVisibility': 'PUBLIC'
            }
          };
          setTimeout(() => {
            axios.post(encodeURI(`https://api.linkedin.com/v2/ugcPosts`), postData, { headers: { Authorization: `Bearer ${foundLdAccount.token}` } }).then(response => {
              const updateInfo = {
                dispatchStatus: 'published',
                postId: response.data.id
              };
              server.models.LinkedinQueue.update({ pageId: createdQueue.pageId, postId: createdQueue.postId }, updateInfo);
            }).catch(err => {
              console.log(err.response.data);
              server.models.LinkedinQueue.update({ pageId: createdQueue.pageId, postId: createdQueue.postId }, { dispatchStatus: 'failed' });
            });
          }, 10000);
        } else {
          server.models.LinkedinQueue.update({ pageId: createdQueue.pageId, postId: createdQueue.postId }, { dispatchStatus: 'failed' });
        }
      });
    } else {
      server.models.LinkedinQueue.update({ pageId: createdQueue.pageId, postId: createdQueue.postId }, { dispatchStatus: 'failed' });
    }
  }).catch(err => {
    console.log(err.response.data);
    server.models.LinkedinQueue.update({ pageId: createdQueue.pageId, postId: createdQueue.postId }, { dispatchStatus: 'failed' });
  });