Как загрузить изображение с помощью API LinkedIn без использования curl-запроса? - PullRequest
0 голосов
/ 10 июля 2020

Я использовал запрос 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"

Я пробовал использовать тот же запрос с « request », который не удался и перенаправил меня на страницу LinkedIn« 404 ».

Вот код:

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 голосов
/ 10 июля 2020

Метод запроса должен быть 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 });
        } 
 }));
...