Выполнение общедоступных вызовов API с помощью простого ключа API — API Youtube Analytics

Я пытаюсь сделать публичный вызов API-интерфейса аналитики Youtube с помощью простого ключа. Это мой PHP-код:

<?
set_include_path('YoutubeAPI/src/Google');
require_once 'autoload.php';
session_start();

$client = new Google_Client();
$client->setApplicationName("xxxxxxxxxxxxxxxxxxxx");
$client->setDeveloperKey('xxxxxxxxxxxxxxxxxxxxxxx');
$youtube = new Google_Service_YouTubeAnalytics($client);

$resp = $youtube->reports->query('channel==UCww2zZWg4Cf5xcRKG-ThmXQ','2014-09-01','2014-09-05','views');
?>

Я получаю эту ошибку:

[03-Jul-2015 11:29:26 Europe/Berlin] PHP Fatal error:  Uncaught exception 'Google_Service_Exception' with message 'Error calling GET https://www.googleapis.com//youtube/analytics/v1/reports?ids=channel%3D%3DUCww2zZWg4Cf5xcRKG-ThmXQ&start-date=2014-09-01&end-date=2014-09-05&metrics=views&key=xxxxxxxxxxxxxxxxx: (401) Login Required' in /home/optimaje/public_html/statstn/YoutubeAPI/src/Google/Http/REST.php:110
Stack trace:
#0 /home/optimaje/public_html/statstn/YoutubeAPI/src/Google/Http/REST.php(62): Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request), Object(Google_Client))
#1 [internal function]: Google_Http_REST::doExecute(Object(Google_Client), Object(Google_Http_Request))
#2 /home/optimaje/public_html/statstn/YoutubeAPI/src/Google/Task/Runner.php(174): call_user_func_array(Array, Array)
#3 /home/optimaje/public_html/statstn/YoutubeAPI/src/Google/Http/REST.php(46): Google_Task_Runner->run()
#4 /home/optimaje/public_html/statstn/YoutubeAPI/src/Google/Client.php(593): Google_Http_REST::execute(Object(Google_Client), Object(Google in /home/optimaje/public_html/statstn/YoutubeAPI/src/Google/Http/REST.php on line 110

Я ищу решение с недели, и я все еще потерян. Где ошибка? Может ли кто-нибудь дать мне рабочий пример кода?

PS: я не хочу использовать вход Oauth2.


person Everblack    schedule 03.07.2015    source источник


Ответы (1)


Доступ к API Google с использованием открытого ключа API аналогичен использованию Oauth2. Помните, что это будет работать только для вызовов, не требующих проверки подлинности. Если вам необходимо пройти проверку подлинности, вам необходимо использовать Oauth2, поскольку API YouTube не поддерживает проверку подлинности учетной записи службы.

Код взят из Simple-query.php< /а>

$client = new Google_Client();
$client->setApplicationName("Client_Library_Examples");
$apiKey = "<YOUR_API_KEY>"; // Change this line.
// Warn if the API key isn't changed.
if (strpos($apiKey, "<") !== false) {
  echo missingApiKeyWarning();
  exit;
}
$client->setDeveloperKey($apiKey);
person DaImTo    schedule 03.07.2015