如何通过带有“ POST”请求的Linkedin API v2将图像作为二进制文件上传

时间:2019-07-05 23:56:56

标签: salesforce linkedin apex linkedin-api

我想知道如何发出适当的“ POST”请求,以通过其API将图像作为二进制文件上传到Linkedin。这就是他们在文档(https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/share-on-linkedin?context=linkedin/consumer/context)中所说的:

  

使用第1步返回的uploadUrl,将您的图片上传到LinkedIn。要上传您的图片,请将POST请求发送到其中包含您的图片作为二进制文件的uploadUrl。

然后他们继续使用cURL给出示例,但是我需要从我的Apex代码发出HTTP请求,因此我需要请求正文的json格式。

为进一步说明我的观点,以下是通过其API在Linkedin中发布图片的步骤:

  

1)注册要上传的图片。

     

2)将您的图片上传到LinkedIn。

     

3)创建图像共享。

他们为第1步和第3步提供json,但没有为第2步提供json,因此是我的问题。

这是我认为相关的代码部分,如果您需要其他任何部分,请告诉我,我将编辑我的问题:

        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变量是在步骤1的响应中提供的URL。按原样,此请求不生成响应主体,并具有状态:已创建和状态代码:201

我尝试了以下操作

  • 执行“ PUT”请求而不是“ POST”。
  • “ Content-Type”标头不同,但由于以下问题的答案,因此决定了上面代码中显示的标头:LinkedIn API V2 - How to upload photo as binary file
  • requestBody ='{'+                  '数据:'+ requestBodyImage +              '}';变量requestBodyImage将是图像二进制文件。

总而言之,我只想知道Linkedin API文档第2步中提到的有关如何共享图像的“ POST”请求的内容。

谢谢您的时间。

0 个答案:

没有答案