我的公司可以将我们网站上的视频从亚马逊分享到他们的Facebook页面。我用过
$response = $fb->post("/{$page_id}/videos", $fbData, $accessToken);
及其工作但我想使用Resumable视频功能,因为只有这样他们才能上传大小超过1GB的大型视频。
$fb = new Facebook(array(
'app_id' => $facebook_settings['app_id'],
'app_secret' => $facebook_settings['app_secret'],
'default_graph_version' => $facebook_settings['default_graph_version'],
));
try {
$fbData = array(
'title' => strip_tags($data['title']),
'description' => strip_tags($data['description']),
'asset_key' => $asset_key,
//'source' => basename($data['url']),
);
//$response = $fb->post("/{$page_id}/videos", $fbData, $accessToken);
$response = $fb->uploadVideo($page_id, $data['url'], $fbData, $accessToken, 5, null);
}
catch(FacebookResumableUploadException $e) {
$this->markFacebookVideoUploaded($asset_key, true, null, $e->getMessage());
}
当我使用这个uploadVideo
函数时,它会给我错误[Symfony \ Component \ Debug \ Exception \ ContextErrorException]
警告:filesize():http://d(this的stat失败是亚马逊上的视频网址。
当uploadVideo
调用Facebook.php文件中的启动函数时,它会出错,它试图获取文件大小,我认为它不可能。
任何建议或解决方案或有人以前经历过吗?
谢谢
答案 0 :(得分:0)
从PHP 5.0.0开始,此函数也可以与某些URL包装器一起使用。有关哪些包装器支持stat()系列功能的列表,请参阅支持的协议/包装器列表。
HTTP(S)包装器不支持stat()
所以转到Facebook库FileUpload / FacebookFile.php,并替换
public function getSize()
{
return filesize($this->path);
}
到
public function getSize()
{
$head = array_change_key_case(get_headers($this->path, TRUE));
return $filesize = $head['content-length'];
}