如何在不使用curl请求的情况下使用LinkedIn API上传图像?

时间:2020-07-10 09:49:08

标签: linkedin linkedin-api

我已使用 curl 请求上传了对我成功的图片。

curl -i --upload-file ~/Desktop/Myimage.jpg -H 'Authorization: Bearer Redacted' "https://api.linkedin.com/mediaUpload/C5522AQHn46pwH96hxQ/feedshare-uploadedImage/0?ca=vector_feedshare&cn=uploads&m=AQLKRJOn_yNw6wAAAW2T0DWnRStny4dzsNVJjlF3aN4-H3ZR9Div77kKoQ&app=1983914&sync=0&v=beta&ut=1Dnjy796bpjEY1"

我尝试将相同的请求与“ 请求”包一起使用,但失败了,并将我重定向到“ 404页面未找到” LinkedIn页面。

代码如下:

const options = {
            headers: {
                'Authorization': `Bearer ${accessToken}`,
                'X-Restli-Protocol-Version': '2.0.0',
                'Content-Type': 'multipart/form-data'
            },
            method: 'put',
            url: mediaUploadUrl
        }

fs.createReadStream(filePath).pipe(request(options, function(err, httpsResponse, body){
            if ( err ) {
                console.log('err', err);
                response(callback, 400, err);
            } else {
                console.log(body);
                response(callback, 200, { mediaUrn });
            }
        }));

我关注的文档页面:https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/rich-media-shares

#linkedin

1 个答案:

答案 0 :(得分:0)

请求方法应该是POST,但是您要发送PUT,下面的代码应该可以工作。

const options = {
        headers: {
            'Authorization': `Bearer ${accessToken}`,
            'X-Restli-Protocol-Version': '2.0.0',
            'Content-Type': 'multipart/form-data'
        },
        method: 'post',
        url: mediaUploadUrl
    }

fs.createReadStream(filePath).pipe(request(options, function(err, httpsResponse, body) {
        if ( err ) {
            console.log('err', err);
            response(callback, 400, err);
        } else {
            console.log(body);
            response(callback, 200, { mediaUrn });
        } 
 }));