我需要通过API将图像/视频上传到Linkedin。我正在使用axios,并将Content-Type设置为multipart / form-data,并且我需要上传的所有图像/视频均带有指向该文件的url。所有文件都远程存储在cloudinary中。
// Prevent page body and google map from handling the mouse
// Wheel events when hovering over pin group content
google.maps.event.addDomListener(groupDiv, 'mouseover', function () {
gMap.setOptions({
disableDoubleClickZoom: true,
navigationControl: false,
scaleControl: false,
draggable: false
});
$('html').css('overflow', 'hidden');
})
// Restore control to page body page body and google map
// when user is no longer hovering pin group content
google.maps.event.addDomListener(groupDiv, 'mouseout', function () {
gMap.setOptions({
disableDoubleClickZoom: false,
navigationControl: true,
scaleControl: true,
draggable: true
});
$('html').css('overflow', 'auto');
})
我遇到的常见错误之一是: UnhandledPromiseRejectionWarning:TypeError:source.pause不是函数
如果我更改
let bodyFormData = new FormData();
bodyFormData.append(
"fileupload",
request(file.url).pipe(fs.createWriteStream("video.mp4"))
);
axios
.post("https://api.linkedin.com/media/upload", bodyFormData, {
headers: {
Authorization: "Bearer " + account.accessToken,
"Content-Type": "multipart/form-data"
}
})
.then(linkedinImageResult => {
只是
request(file.url).pipe(fs.createWriteStream("video.mp4"))
我收到此错误: 'java.io.IOException:缺少初始的多部分边界'
如果我删除
file.url
我收到此错误: “无法解析表单内容”
注意: file.url是指向云文件的URL,例如file.url:“ https://res.cloudinary.com/dnc1t9z9o/video/upload/v1555527484/mn3tyjcpg1u4anlma2v7.mp4”
非常感谢您的帮助:)
答案 0 :(得分:0)
我找到了针对这种情况的解决方案!
这是我的示例代码。
const postRichMedia = async (mediaURL, accessToken, fileName) => {
const formData = new FormData();
const key = S3Service.getSocialKeyFromUrl(mediaURL);
const file = await S3Service.downloadFileFromS3(key);
formData.append("fileupload", file.Body, fileName);
try {
const {data} = await axios.post('https://api.linkedin.com/media/upload', formData, {
headers: {
...formData.getHeaders(),
Authorization: `Bearer ${accessToken}`
},
});
const {location} = data;
return location;
} catch (err) {
console.error(err);
}
};
让我知道这是否对您有帮助
答案 1 :(得分:0)
请注意,使用 Rich Media this solution:
<块引用>正在使用 deprecated 上传图片 已弃用。建议合作伙伴使用返回的资产API 响应如 urn:li:digitalmediaAsset:C5522AQHn46pwH96hxQ 发布 分享。
如果您需要有关资产 API 的帮助,请参阅我的回答 https://api.linkedin.com/media/upload