Я хочу проверить пользователя Youtube, отправив ему сообщение, содержащее ссылку обычным способом (что обычно делается по электронной почте). Но я не смог сделать это с помощью YouTube API (есть какое-то руководство, но оно не работает — https://developers.google.com/youtube/2.0/developers_guide_php?hl=fr). Кто-нибудь может мне помочь с этим? Благодарю.
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
//set_include_path('C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\ZendGdata-1.12.9\\library');
require_once 'Zend/Loader.php'; // the Zend dir must be in your include_path
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();
//phpinfo();
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = '[email protected]',
$password = 'paramparam',
$service = 'youtube',
$client = null,
$source = 'Checking_channel', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$myDeveloperKey = 'AI39si6AwkrbzJtbqQtRZVWlgV8mQOmPcmKoi2l_cSwROMfmYJIjwNuk8fF3HAXyKViE7hvIbR_RcpvgZlqMCAlqBlCPRt9xyg';
$httpClient->setHeaders('X-GData-Key', "key=${myDeveloperKey}");
$yt = new Zend_Gdata_YouTube($httpClient);$newContact = $yt->newContactEntry();
$newContact->username = $yt->newUsername('SOgHL3mGLe0--TEWo5Bz4w');
$newContact->category = array($yt->newCategory('http://gdata.youtube.com/schemas/2007#friend',
'http://schemas.google.com/g/2005#kind'));$inboxUrl = 'http://gdata.youtube.com/feeds/api/users/SOgHL3mGLe0--TEWo5Bz4w/inbox';
$videoMessageEntry = $yt->newEntry();
// pass in the ID of the video to be included in your message (required)
$newMessage = $yt->newMediaEntry();
$newMessage->id = $yt->newId('wSq1AewR_Vs');
$newMessage->title = $yt->newTitle('message title');
$newMessage->extensionElements = array($yt->newDescription('message body'));
// insert the message
try {
$yt->insertEntry($newMessage, $inboxUrl);
} catch (Zend_App_Excetion $e) {
print $e->getMessage();
}
?>
Ошибка, которая была отображена:
Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 403 Forbidden' in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ZendGdata-1.12.9\library\Zend\Gdata\App.php:717 Stack trace: #0 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ZendGdata-1.12.9\library\Zend\Gdata.php(219): Zend_Gdata_App->performHttpRequest('POST', 'http://gdata.yo...', Array, '<atom:entry xml...', 'application/ato...', NULL) #1 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ZendGdata-1.12.9\library\Zend\Gdata\App.php(908): Zend_Gdata->performHttpRequest('POST', 'http://gdata.yo...', Array, '<atom:entry xml...', 'application/ato...') #2 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ZendGdata-1.12.9\library\Zend\Gdata\App.php(983): Zend_Gdata_App->post(Object(Zend_Gdata_YouTube_MediaEntry), 'http://gdata.yo...', NULL, NULL, Array) #3 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\temp.php(46): Zend_Gdata_App->insertEntry(Object(Ze in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ZendGdata-1.12.9\library\Zend\Gdata\App.php on line 717
Задача ещё не решена.
Других решений пока нет …