Как загрузить изображение в виде бинарного файла через Linkedin API v2 с запросом «POST» - PullRequest
0 голосов
/ 06 июля 2019

Я хочу знать, как сделать правильный запрос POST для загрузки изображения в виде двоичного файла в Linkedin через их API.Это то, что они говорят в своей документации (https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/share-on-linkedin?context=linkedin/consumer/context):

Используя uploadUrl, возвращенный с шага 1, загрузите свое изображение в LinkedIn. Чтобы загрузить свое изображение, отправьте POST-запрос на uploadUrl со своим изображениемвключены в виде двоичного файла.

Затем они приводят пример использования cURL, но мне нужно сделать HTTP-запрос из моего кода Apex, поэтому мне нужен формат json тела запроса.

Чтобы проиллюстрировать мою точку зрения, это шаги для публикации изображения в Linkedin через их API:

1) Зарегистрируйте свое изображение для загрузки.

2) ЗагрузитьВаше изображение для LinkedIn.

3) Создайте общий ресурс изображения.

Они предоставляют JSON для шагов 1 и 3, но не для 2, поэтому моя проблема.

Это часть кода, которую я считаю релевантной. Если вам понадобится какая-либо другая часть, просто скажите мне об этом, и я отредактирую свой вопрос:

        httpReq.setMethod('POST');
        httpReq.setEndpoint(uploadUrl);
        httpReq.setHeader('Authorization', 'Bearer '+linkedlnInfoListNew[0].Access_Token__c);        
        httpReq.setHeader('Content-Type', 'application/binary');             
        httpReq.setHeader('X-Restli-Protocol-Version', '2.0.0');
        requestBody = EncodingUtil.base64Encode(banner);
        httpReq.setBody(requestBody);

Переменная uploadUrl - это URL-адрес, предоставленный в ответе шага.1. Как этоЭто запрос не дает тела ответа и имеет статус: создан и код состояния: 201

Я пробовал следующее :

  • Выполнить запрос «PUT»вместо 'POST'.
  • Различные заголовки 'Content-Type', но они выбрали тот, который показан в коде выше, из-за ответа на этот вопрос: LinkedIn API V2 - Как загрузить фотографию какдвоичный файл
  • requestBody = '{' + 'data:' + requestBodyImage + '}';Переменная requestBodyImage будет двоичным изображением.

Подводя итог, я просто хочу знать, что поместить в тело запроса 'POST', упомянутого в шаге 2 документации API Linkedin, о том, какподелиться изображением.

Спасибо за ваше время.

...