使用带有服务帐户的Youtube API v3获取频道ID

时间:2016-11-15 21:10:07

标签: youtube-api youtube-data-api youtube-analytics youtube-analytics-api

美好的一天,我尝试使用服务帐户获取频道ID,因为我在项目的其他范围内使用它。但是,当我请求流程时,它会给我提供服务帐户信息。我正在使用php btw

非常感谢,我们将不胜感激。

Pd积。我正在替换虚拟文本的真实账户信息。

Channel id on the tab and results image

当然代码:

$credentials_file = $this->key_dir . $this->key_file['title'];

    $client = new \Google_Client();
    $client->setAuthConfig($credentials_file);
    $client->addScope('https://www.googleapis.com/auth/youtube');

    $client->setApplicationName("Youtube Analytics");
    $client->refreshTokenWithAssertion();

    $token = $client->getAccessToken();
    $accessToken = $token['access_token'];
    if (!empty($accessToken)) {

    $service = new \Google_Service_YouTube($client);

    $data = $service->channels->listChannels('id,snippet', array('mine' => 'true'));

    echo "id: " . $data->items[0]->id . "<br>";
    echo "Kind: " . $data->items[0]->kind . "<br>";
    echo "Snippet -> title : " . $data->items[0]->snippet['title'] . "<br>";

    }

1 个答案:

答案 0 :(得分:3)

AFAIK,Youtube API不支持服务帐户流程。如document

中所述
  

服务帐户流支持不访问用户信息的服务器到服务器交互。但是,YouTube Data API不支持此流程。由于无法将服务帐户与YouTube帐户相关联,因此尝试使用此流程授权请求会产生 NoLinkedYouTubeAccount 错误。

同样在Youtube v3 Google Service Account Access问题中,&#34;没有计划在YouTube Data API v3通话中添加对服务帐户授权的支持。&#34;如相关的SO问题#21890982#21057358中所述:您需要自己的帐户,并且可以使用V3为服务创建身份验证,而无需用户干预。

希望这有帮助。