Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook广告API PHP:使用AdVideo类上传视频_Php_Facebook_Facebook Graph Api_Video_Facebook Ads Api - Fatal编程技术网

Facebook广告API PHP:使用AdVideo类上传视频

Facebook广告API PHP:使用AdVideo类上传视频,php,facebook,facebook-graph-api,video,facebook-ads-api,Php,Facebook,Facebook Graph Api,Video,Facebook Ads Api,使用API v2.4在PHP中查询 当我尝试使用AdVideo类上传视频时,如下所示 $time_limit = ini_get('max_execution_time'); set_time_limit(0); $video = new AdVideo(null, $account_id); $video->{AdVideoFields::NAME} = *name*; $video->{AdVideoFields::SOURCE} = *video_path*

使用API v2.4在PHP中查询

当我尝试使用AdVideo类上传视频时,如下所示

  $time_limit = ini_get('max_execution_time');
  set_time_limit(0);
  $video = new AdVideo(null, $account_id);
  $video->{AdVideoFields::NAME} = *name*;
  $video->{AdVideoFields::SOURCE} = *video_path*;
 try {
     $video->create();
 } catch (\FacebookAds\Http\Exception\RequestException $e) {
     echo "<script>alert('" . $e->getErrorUserMessage() . "')</script>";
     set_time_limit($time_limit);
     return;
 }
 set_time_limit($time_limit);
$time\u limit=ini\u get('max\u execution\u time');
设置时间限制(0);
$video=newadvideo(空,$account\u id);
$video->{AdVideoFields::NAME}=*NAME*;
$video->{AdVideoFields::SOURCE}=*视频路径*;
试一试{
$video->create();
}catch(\FacebookAds\Http\Exception\RequestException$e){
回显“警报('”$e->getErrorUserMessage().“)”;
设置时间限制($time\u limit);
返回;
}
设置时间限制($time\u limit);
结果:

我得到以下异常-
'操作在60000毫秒后超时,接收到0字节'

我上传的视频大约是20MB,上传需要更多的时间。如何处理?有没有办法显示上传进度?这个类支持分块上传吗


已尝试设置时间限制(0);但是没有帮助。

这看起来像是在SDK中达到了默认为60的CURL超时

您可以使用以下代码将超时更改为无限制:

Api::instance()
  ->getHttpClient()
  ->getAdapter()
  ->getOpts()
  ->offsetSet(CURLOPT_TIMEOUT, 0);

API支持分块上传,但不确定“Ads”SDK——顺便说一句,您是否排除了60秒超时的可能性?如果是这样,那么使用分块上传应该对你有用