如何使用YouTube API直接上传后如何重定向



我正在尝试使用YouTube API将视频直接上传到YouTube。上传的代码在控制器中如下函数uploadVideo(){ require_once'zend/loader.php';

    Zend_Loader::loadClass('Zend_Gdata_YouTube');
    $yt = new Zend_Gdata_YouTube();
    Zend_Loader::loadClass('Zend_Gdata_AuthSub');
    Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
    //client login
    $authenticationURL = 'https://www.google.com/accounts/ClientLogin';
    $httpClient = Zend_Gdata_ClientLogin::getHttpClient($username = 'myusername@gmail.com', $password = 'password', $service = 'youtube', $client = null, $source = 'videotest',$loginToken = null, $loginCaptcha = null, $authenticationURL);
    $developerKey = 'my-key';
    $yt = new Zend_Gdata_YouTube($httpClient, "videotest",null,$developerKey);
    $myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
    // create a new Zend_Gdata_App_MediaFileSource object
     $path = Configure::read('Files.write');
     $video = $path . DS . 'videos' . DS .'car.mp4';
    $filesource = $yt -> newMediaFileSource($video);
    $filesource -> setContentType('video/mp4');
    $filesource -> setSlug($video);
    // add the filesource to the video entry
    $myVideoEntry -> setMediaSource($filesource);
    $myVideoEntry -> setVideoTitle('car');
    $myVideoEntry -> setVideoDescription('car video');
    // The category must be a valid YouTube category!
    $myVideoEntry -> setVideoCategory('Autos');

    $myVideoEntry -> SetVideoTags('cars, test');
    $myVideoEntry -> setVideoDeveloperTags(array('mydevtag', 'anotherdevtag'));
    $myVideoEntry->setVideoPrivate();
    // upload URI for the currently authenticated user
    $uploadUrl = "http://uploads.gdata.youtube.com/feeds/api/users/default/uploads";

    try {
        $newEntry = $yt -> insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');
echo "returned from youtube";
$this -> redirect('/videos/view');
    } catch (Zend_Gdata_App_HttpException $httpException) {
        //print_r($httpException);
        echo $httpException -> getRawResponseBody();
    } catch (Zend_Gdata_App_Exception $e) {
        print_r($e);
        echo $e -> getMessage();
    }
}

视频上传到我的YouTube频道,但是在上传之后,我只看到一个空白屏幕,并且不会重定向。这里有什么缺少的吗?

如果要通过HTML表单提交视频,则应使用基于浏览器的上传流,然后在完成之后自动重定向到另一页。

如果您坚持使用直接上传流,那么我不确定您的问题的答案是什么,因为它与YouTube API直接相关。它只是归结为"我如何在进行一些任意PHP调用后如何重定向到新的网页"。

我在问题上钻了下来,发现问题在zend/gdata/app.php中的方法插入中。由于某种原因

 $returnEntry = new $className($response->getBody());

即使$response->getBody()是非空的,

也是失败的。因此,目前,我在post()之后评论了代码,然后从该方法返回null。它可以正常工作,并且控件又回到了我的应用程序。我不确定这是一个错误还是在某些东西上丢失。谢谢。

相关内容

  • 没有找到相关文章

最新更新