/**上传视频
* @param $url 请求url(https://open.douyin.com/video/create?open_id={$open_id}&access_token={$access_token})
* @param $file 文件路径 (http://www.xxx.com/uploads/video/test.mp4)
* @param $video_name 文件名称(test.mp4)
*/
function curl_upload_file($url,$file,$video_name) {
$payload = '';
$params = "--ABC1234\r\n"
. "Content-Type: application/x-www-form-urlencoded\r\n"
// . "Accept:application/json\r\n"
. "\r\n"
. $payload . "\r\n"
. "--ABC1234\r\n"
. "Content-Type: video/mp4\r\n"
. "Content-Disposition: form-data; name=\"video\"; filename=\"".$video_name."\"\r\n"
. "\r\n"
. file_get_contents($file) . "\r\n"
. "--ABC1234--";
$first_newline = strpos($params, "\r\n");
$multipart_boundary = substr($params, 2, $first_newline - 2);
$request_headers = array();
$request_headers[] = 'Content-Length: ' . strlen($params);
$request_headers[] = 'Content-Type: multipart/form-data; boundary=' . $multipart_boundary;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$reply = curl_exec($ch);
return json_decode($reply,true);
}
/**发布视频
* @param $url 请求url (https://open.douyin.com/video/create?open_id={$open_id}&access_token={$access_token})
* @param $video_id 文件id(上传视频返回的video_id)
* @param $video_title 视频title (非必填)
*/
function curl_create_file($url,$video_id,$video_title) {
$ch = curl_init($url);
// curl_setopt($ch, CURLOPT_TIMEOUT, 60); //设置超时
// if(0 === strpos(strtolower($url), 'https')) {
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //对认证证书来源的检查
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //从证书中检查SSL加密算法是否存在
// }
curl_setopt($ch, CURLOPT_POST, TRUE);
$data = [
'video_id'=>$video_id,
'text'=>$video_title
];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen(json_encode($data)))
);
$reply = curl_exec($ch);//CURLOPT_RETURNTRANSFER 不设置 curl_exec返回TRUE 设置 curl_exec返回json(此处) 失败都返回FALSE
curl_close($ch);
return json_decode($reply,true);
}