当我试图上传视频广告时,我得到以下错误:Error Code : 1363030
.
您的视频上传在完成之前超时。这可能是因为网络连接速度慢,或者因为你要上传的视频太大。请再试一次
连接很好,视频不是太大。块(1 mb)。
你知道是什么问题吗?
我代码:$transfer = array();
$transfer["access_token"] = "G4535PZXXX";
$transfer["upload_phase"] = "transfer";
$transfer["upload_session_id"] = $upload_session_id";
$transfer["start_offset"] = $start_offset";
$transfer["video_file_chunk"] = @$filepath;
print_r($transfer);
//traverse array and prepare data for posting (key1=value1)
foreach ($transfer as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode('&', $post_items);
//create cURL connection
$curl_connection = curl_init('https://graph-video.facebook.com/v2.3/act_XXX/advideos');
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$transfer_response = curl_exec($curl_connection);
//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' . curl_error($curl_connection);
//close the connection
curl_close($curl_connection);
编辑:
为了创建块,我使用了以下命令
shell_exec('split --bytes='. $fb_response["end_offset"] . ' --suffix-length=1 --numeric-suffixes '. $this->filepath .' $chunkfilepath' );
从PHP 5.5.0开始,@前缀已被弃用,文件可以使用CURLFile发送。参见CURLOPT_POSTFIELDS @ http://php.net/manual/en/function.curl-setopt.php
$video_file_chunk = new CURLFile($filepath,'video/mp4');
$transfer = array();
$transfer["access_token"] = "G4535PZXXX";
$transfer["upload_phase"] = "transfer";
$transfer["upload_session_id"] = $upload_session_id";
$transfer["start_offset"] = $start_offset";
$transfer["video_file_chunk"] = $video_file_chunk;
//create cURL connection
$curl_connection = curl_init('https://graph-video.facebook.com/v2.3/act_XXX/advideos');
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $transfer);
//perform our request
$transfer_response = curl_exec($curl_connection);
//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' . curl_error($curl_connection);
//close the connection
curl_close($curl_connection);
对于后来发现这个的人来说,如果您没有指定附加文件的内容类型和文件名(即,如果您将其作为内联字段值传递,而不是作为附加文件传递),则会发生此Facebook错误。
我不经常使用PHP,所以不能真正给出正确的curl命令,但是上面的代码似乎有一个bug,因为它使用@
操作符("抑制错误")而不是将@
前缀的文件名传递给curl。对应的行应该是:
$transfer["video_file_chunk"] = '@' . $filepath;
不确定这是否足以解决PHP中的整体问题