【问题标题】:Making Public API Calls with a simple API Key - Youtube Analytics API使用简单的 API 密钥进行公共 API 调用 - Youtube Analytics API
【发布时间】:2015-09-21 02:16:08
【问题描述】:

我正在尝试使用一个简单的密钥公开调用 Youtube 分析 API。这是我的 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 登录。

【问题讨论】:

    标签: php api youtube-api youtube-analytics-api


    【解决方案1】:

    使用公共 API 密钥访问 Google API 与使用 Oauth2 类似。请记住,这仅适用于不需要身份验证的调用,如果您需要进行身份验证,则需要使用 Oauth2,因为 YouTube API 不支持服务帐户身份验证。

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-09
      • 2021-03-02
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 2017-01-25
      • 2018-08-30
      相关资源
      最近更新 更多