【问题标题】:Error in linkedin media upload apiLinkedin 媒体上传 API 出错
【发布时间】:2018-10-13 07:51:11
【问题描述】:

我正在尝试使用linkedin api 上传图片。 我已经在我的服务器中上传了图片,现在我想将上传的图片网址上传到linkedin。但我得到了错误

{ "serviceErrorCode":0,"message":"请求不是多部分的 请求","状态":400 }

      $curl1 = curl_init();
      $m_url="https://api.linkedin.com/media/upload";

      $curl_header = array("Authorization:Bearer ".$access_token);
      $uploadRequest = array(
            'name'=>'media',
            'filename' => basename($medias[0]),
            'media_data' => base64_encode(file_get_contents($medias[0]))
                );
                curl_setopt_array($curl1, array(
                  CURLOPT_URL => $m_url,
                  CURLOPT_RETURNTRANSFER => true,
                  CURLOPT_ENCODING => "",
                  CURLOPT_MAXREDIRS => 10,
                  CURLOPT_TIMEOUT => 30,
                  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                  CURLOPT_CUSTOMREQUEST => "POST",
                  CURLOPT_POSTFIELDS =>$uploadRequest,
                  CURLOPT_HTTPHEADER=>$curl_header,

                ));
                $response1 = curl_exec($curl1);
                $err1 = curl_error($curl1);

                curl_close($curl1);

这是请求。请任何人告诉我确切的问题是什么以及如何解决这个问题。提前致谢。

【问题讨论】:

  • 你有read the documentation吗?具体来说,检查它声明您需要发送哪些标头。
  • 是的,但它显示了如何将图像直接上传到 LinkedIn。但我必须上传一个图片网址,该网址已上传到我的服务器上。
  • 没关系。唯一的区别是您如何获取二进制数据(来自$_FILES-array 与通过file_get_contents() 加载它)。重要的部分是Content-Type。链接中明确指出它应该作为多部分请求发送。
  • 是的,一个工作。非常感谢。

标签: php laravel linkedin


【解决方案1】:

像这样添加标题:

       $curl_header=array("Content-Type:multipart/form-data", 
       "Authorization:Bearer ".$access_token);

并像这样更改了帖子参数

          $curl1 = curl_init();

          $m_url="https://api.linkedin.com/media/upload";
          $uploadRequest['file'] = new CURLFile($img, 'image/png', basename($img));


            $curl_header=array("Content-Type:multipart/form-data", "Authorization:Bearer ".$access_token);

                curl_setopt_array($curl1, array(
                  CURLOPT_URL => $m_url,
                  CURLOPT_RETURNTRANSFER => true,
                  CURLOPT_ENCODING => "",
                  CURLOPT_MAXREDIRS => 10,
                  CURLOPT_TIMEOUT => 30,
                  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                  CURLOPT_CUSTOMREQUEST => "POST",
                  CURLOPT_POSTFIELDS =>$uploadRequest,
                  CURLOPT_HTTPHEADER=>$curl_header,

                ));

                $response1 = curl_exec($curl1);
                $err1 = curl_error($curl1);
                $status1 = curl_getinfo($curl1, CURLINFO_HTTP_CODE);


                curl_close($curl1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 2012-12-26
    • 2018-10-20
    • 2019-07-06
    • 2012-01-29
    相关资源
    最近更新 更多