Доступ к сервисам YouTube из php - PullRequest
1 голос
/ 02 октября 2011

Я совершенно новичок в php. Я пытаюсь создать систему для загрузки видео на YouTube и сохранить их URL. Другое приложение флеш позже объединяет их. Я очищаю цель, чтобы быть уверенным, что библиотека сможет выполнять эти задачи.

1) загрузка по каналу по умолчанию 2) получить URL видео 3) скачать видео для офлайн просмотра

Я нашел библиотеку zend, которая используется с php поиском. Но столкнулся с большой проблемой. Я использую WAMP. Я скопировал папку библиотеки Zend в «C: \ wamp \ www \ zend» и изменил php.ini здесь

; Windows: "\ путь1; \ путь2" include_path = ".; C: \ wamp \ www \ zend \ library; c: \ php \ includes"

не чувствуя изменений. Поэтому я пытаюсь протестировать библиотеку с этим кодом.

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

set_include_path('C:/wamp/library/zend/library' . PATH_SEPARATOR . get_include_path());

require_once 'zend/library/Zend/Gdata/YouTube.php';
require_once 'zend/library/Zend/Gdata/ClientLogin.php';

require_once 'zend/library/Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();

$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = 
  Zend_Gdata_ClientLogin::getHttpClient(
              $username = 'shabab.h.siddique@gmail.com',
              $password = '***',
              $service = 'youtube',
              $client = null,
              $source = 'testphp', 
              $loginToken = null,
              $loginCaptcha = null,
              $authenticationURL);



$developerKey = 'AI3....w';
$applicationId = 'Student Collaborative Video System';
$clientId = 'Student Collaborative Video System';

$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);

$yt->setMajorProtocolVersion(2);


$videoFeed = $yt->getVideoFeed(Zend_Gdata_YouTube::VIDEO_URI);
printVideoFeed($videoFeed);

var_dump($videoFeed);

?>

Ошибка, которую я сейчас вижу,

1 0,0023 375392 {main} () .. \ testphp.php: 0

2 0,0086 560192 require_once ('C: \ wamp \ www \ zend \ library \ Zend \ Gdata \ YouTube.php') .. \ testphp.php: 7

Ответы [ 2 ]

0 голосов
/ 03 октября 2011

заменить

require_once 'Zend\Loader.php';

с

require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
0 голосов
/ 03 октября 2011

Ваш код работал нормально для меня, мне просто пришлось изменить путь включения с \zend\library до X:/zend/framework/library, где я положил его на свой ПК.При настройке пути включения обязательно используйте полный путь к фреймворку.

Затем мне нужно было специально включить файлы Zend_Gdata, которые мы будем использовать.Вот код, который работал.

<?php 
set_include_path('X:/zend/framework/library' . PATH_SEPARATOR . get_include_path());

// we must manually require these since we didn't set up the autoloader
require_once 'Zend/Gdata/YouTube.php';
require_once 'Zend/Gdata/ClientLogin.php';

$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = 
  Zend_Gdata_ClientLogin::getHttpClient(
              $username = 'me@myemail.com',
              $password = 'mypass',
              $service = 'youtube',
              $client = null,
              $source = 'MySource', // a short string identifying your application
              $loginToken = null,
              $loginCaptcha = null,
              $authenticationURL);

$developerKey = 'myprodkey';
$applicationId = 'TestProduct';
$clientId = 'Student Collaborative Video System';
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
$yt->setMajorProtocolVersion(2);
$videoFeed = $yt->getVideoFeed(Zend_Gdata_YouTube::VIDEO_URI);
//printVideoFeed($videoFeed);

var_dump($videoFeed);  // worked, printed out a list of videos in my app
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...