Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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-php-sdk-v4将视频重新上传到facebook_Php_Facebook_Facebook Graph Api - Fatal编程技术网

使用facebook-php-sdk-v4将视频重新上传到facebook

使用facebook-php-sdk-v4将视频重新上传到facebook,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我正在使用以下SDK: 此外,我正在使用以下过程: 以下是迄今为止我掌握的相关代码的摘要: $path = '/' . $fb->getUid() . '/videos'; $params = array('upload_phase' => 'start', 'file_size' => filesize($fileName)); $startResult = (new \Facebook\Fa

我正在使用以下SDK:

此外,我正在使用以下过程:

以下是迄今为止我掌握的相关代码的摘要:

                $path = '/' . $fb->getUid() . '/videos';
            $params = array('upload_phase' => 'start', 'file_size' => filesize($fileName));
            $startResult = (new \Facebook\FacebookRequest($this->fbSession, 'POST', $path, $params, 'v2.3'))->execute()->getGraphObject();
print_r($startResult);
            $startOffset = $startResult->getProperty('start_offset');
            $endOffset = $chunkSize = $startResult->getProperty('end_offset');
            $uploadSessionId = $startResult->getProperty('upload_session_id');
            chdir(sys_get_temp_dir());
            $splitCmd = "split --bytes=$chunkSize --suffix-length=1 --numeric-suffixes $fileName {$prefix}";
            exec($splitCmd);
            $part = 0;
            while(($startOffset < $endOffset) && ($part <= 10))
            {
                $curChunk = sys_get_temp_dir() . '/' . $prefix . $part;
                $params = array('upload_phase' => 'transfer',
                    'start_offset' => $startOffset,
                    'upload_session_id' => $uploadSessionId,
                    'video_file_chunk' => '@' . $curChunk);
print_r($params);echo "\n";
                $upldResult = (new \Facebook\FacebookRequest($this->fbSession, 'POST', $path, $params, 'v2.3'))->execute()->getGraphObject();
                $startOffset = $upldResult->getProperty('start_offset');
                $endOffset = $upldResult->getProperty('end_offset');
                unlink($curChunk);
                $part++;
echo "$startOffset > $endOffset\n";
            }
echo "Done uploading\n";
            $params = array('upload_session_id' => $uploadSessionId,
                'upload_phase' => 'finish',
                'title' => 'My Title',
                'description' => 'My Description',
                );
print_r($params); echo "\n";
            $postResult = (new \Facebook\FacebookRequest($this->fbSession, 'POST', $path, $params, 'v2.3'))->execute()->getGraphObject();
print_r($postResult);
我想不出怎么解决这个问题。我给它刚刚还给我的会话id,用于可恢复上传,它告诉我它是无效的(我想)。还有其他人在使用可恢复上传吗?你是如何让它工作的

更新:我不再认为这与PHPSDK有关。我可以使用命令行curl和

UPDATE2:下面是使用curl和您自己的访问令牌和fb配置文件复制此错误的最基本方法:

curl -X POST "https://graph-video.facebook.com/v2.3/<your_fb_id>/videos" -F "access_token=<your_access_token>" -F "upload_phase=start" -F "file_size=3512954"
Response:{"video_id":"10205422595678264","start_offset":"0","end_offset":"1048576","upload_session_id":"10205422595718265"}

curl -X POST "https://graph-video.facebook.com/v2.3/<your_fb_id>/videos" -F "access_token=<your_access_token>" -F "upload_phase=transfer" -F "start_offset=0" -F "upload_session_id=10205422595718265" -F "video_file_chunk=@/tmp/CHUNK0.mp4"
Response: {"error":{"message":"(#1363041) Invalid upload session given.","type":"OAuthException","code":1363041}}
curl-X POST”https://graph-video.facebook.com/v2.3//videos“-F”访问令牌=“-F”上载阶段=开始“-F”文件大小=3512954”
响应:{“视频”id:“10205422595678264”,“开始偏移量:“0”,“结束偏移量:“1048576”,“上载会话”id:“10205422595718265”}
卷曲-X柱“https://graph-video.facebook.com/v2.3//videos“-F”访问令牌=“-F”上载阶段=传输“-F”开始偏移量=0“-F”上载会话id=10205422595718265“-F”视频文件块=@/tmp/CHUNK0.mp4”
响应:{“错误”:{“消息”:“(#1363041)给定的上载会话无效。”,“类型”:“OAutheException”,“代码”:1363041}

作为旁注,使用
'video\u file\u chunk'=>@$文件名对我不起作用(发布的内容长度总是太小)。我的PHP版本是5.6,所以我尝试了哪个版本更好(发布的内容长度是正确的)。但这并没有修复我的错误消息。仍然得到无效的上传会话。你并不孤单,我在Facebook iOS框架上遇到了完全相同的问题。我与Facebook有一个共同点:我正在等待他们的回复。Facebook现在已经解决了这个问题。我现在证实它对我有效。
curl -X POST "https://graph-video.facebook.com/v2.3/<your_fb_id>/videos" -F "access_token=<your_access_token>" -F "upload_phase=start" -F "file_size=3512954"
Response:{"video_id":"10205422595678264","start_offset":"0","end_offset":"1048576","upload_session_id":"10205422595718265"}

curl -X POST "https://graph-video.facebook.com/v2.3/<your_fb_id>/videos" -F "access_token=<your_access_token>" -F "upload_phase=transfer" -F "start_offset=0" -F "upload_session_id=10205422595718265" -F "video_file_chunk=@/tmp/CHUNK0.mp4"
Response: {"error":{"message":"(#1363041) Invalid upload session given.","type":"OAuthException","code":1363041}}