美好的一天,我尝试使用服务帐户获取频道ID,因为我在项目的其他范围内使用它。但是,当我请求流程时,它会给我提供服务帐户信息。我正在使用php btw
非常感谢,我们将不胜感激。
Pd积。我正在替换虚拟文本的真实账户信息。
当然代码:
$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>";
}
答案 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为服务创建身份验证,而无需用户干预。
希望这有帮助。