Следуя документации Google, вы сможете использовать API отчетов YouTube без аутентификации пользователя с помощью учетной записи службы.
В настоящее время у меня есть очень простой пример, который должен дать мне список доступных заданий, хотя может быть пустым. Но я получаю разрешение 403 отказано.
Запрос:
$client = new \Google_Client();
$client->setAuthConfig('service-account-key.json');
$client->addScope(Google_Service_YouTubeReporting::YT_ANALYTICS_MONETARY_READONLY);
$client->addScope(Google_Service_YouTubeReporting::YT_ANALYTICS_READONLY);
$youtube_reporting_service = new \Google_Service_YouTubeReporting($client);
$jobs = $youtube_reporting_service->jobs->listJobs();
отклик:
Google_Service_Exception
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"errors": [
{
"message": "The caller does not have permission",
"domain": "global",
"reason": "forbidden"}
],
"status": "PERMISSION_DENIED"}
}
Я убедился, что включены следующие API:
Я не понимаю, как должна быть связь между проектами в Google Cloud Platform и аккаунтами YouTube.
Имеет ли это отношение к Передача общедоменных полномочий учетной записи службы?
Вам тогда нужно включить G Suite?
Я вижу похожий вопрос Как предоставить доступ к API отчетов YouTube для учетной записи службы Google?
существует, но этот может быть немного в возрасте с момента последнего ответа. Я надеюсь, что мои образцы и дополнения будут проливать новый свет на этот вопрос.
Есть кто-то с рабочим образцом? Может быть на других языках. Пока поток ясен.
Как правило, учетные записи служб могут использоваться для олицетворения учетной записи пользователя. Выполнение авторизованных звонков упоминается в Подготовка к авторизованному вызову API.
Но чтобы ответить на вопрос, Учетные записи служб не работают с API YouTube:
Учетные записи служб не работают для вызовов API данных YouTube, поскольку
учетные записи служб требуют соответствующего канала YouTube, и вы не можете
связать новые или существующие каналы с учетными записями служб. Если вы используете
сервисная учетная запись для вызова API данных YouTube, сервер API возвращает
ошибка с типом ошибки, установленным как неавторизованный, и причиной, установленной на
youtubeSignupRequired.
Других решений пока нет …