php 如何通过API上传视频到Pinterest Media

uqdfh47h  于 2022-12-17  发布在  PHP
关注(0)|答案(1)|浏览(138)
$curl = curl_init();

                curl_setopt_array($curl, array(
                    CURLOPT_URL => 'https://api.pinterest.com/v5/media',
                    CURLOPT_RETURNTRANSFER => true,
                    CURLOPT_ENCODING => '',
                    CURLOPT_MAXREDIRS => 10,
                    CURLOPT_TIMEOUT => 0,
                    CURLOPT_FOLLOWLOCATION => true,
                    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                    CURLOPT_CUSTOMREQUEST => 'POST',
                    CURLOPT_POSTFIELDS =>'{
                   "media_type": "video"
                    }',
                    CURLOPT_HTTPHEADER => array(
                        "Authorization: Bearer  {$pages['token']}",
                        'Content-Type: application/json',
                        'Accept: application/json'
                    ),
                ));

                $response = curl_exec($curl);

                curl_close($curl);

                $manage = json_decode($response, true);
                return $manage;

我得到的输出:
介质标识:“5248805388878404421”介质类型:“视频”上传_参数:{x-amz-日期:“20220818 T052950 Z”,...}内容类型:“多部分/表格-数据”键:“上传/ae/7a/15/2:视频:1074179086030577351:5248805388878404421”策略:“安全令牌”x-amz签名:“65 d1ca 782 e381 e17 a7 b4329079 c9 ff 9 c2 c44524497 c 084 ebcd 5d 84823 dc 4187 d”上传网址:“https://pinterest-media-upload.s3-accelerate.amazonaws.com/“
我如何上传我的视频到亚马逊aws链接。文档没有提供任何细节。请分享代码。

r55awzrz

r55awzrz1#

先说一些信息。
你上传媒体到的服务器,将只响应http头,所以你需要检查http代码204。
服务器需要您请求的那些上传参数,因此只需将它们放入一个数组中,并将其与CURLFile一起发送到您拥有的url。
您不需要任何验证头,服务器将根据您发送回的上传参数知道这是哪一个上传。
就这样。我是这么做的:

$data = array();

$upload_parameters = array(); //in your case $manage['upload_parameters']
foreach ($upload_parameters as $key => $value) {
    $data[$key] = $value;
}
$data['file'] = new CURLFile('/example/media.mp4');

$options = array(
   CURLOPT_URL => 'https://pinterest-media-upload.s3-accelerate.amazonaws.com/',
   CURLOPT_POST => 1,
   CURLOPT_HTTPHEADER => array('Content-Type: multipart/form-data'),
   CURLOPT_POSTFIELDS => $data,
   CURLOPT_RETURNTRANSFER => 1,
   CURLOPT_HEADER => 1 
);

$curl = curl_init();
curl_setopt_array($curl, $options);
curl_exec($curl);

$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($http_code == 204) {
    //upload worked
}

服务器只返回标头,因此您需要检查http代码204。

相关问题