按照 Google 的文档,您应该能够通过使用服务帐户在没有用户身份验证的情况下使用 YouTube 报告 API。
目前我有一个非常简单的示例,它应该给我一个可用工作列表,但可能是空的。但我得到了 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 已启用:
- YouTube 报告 API
- YouTube 数据 API v3
- YouTube 分析 API
- Google+ API (如果真的有必要,我对此表示怀疑)
我不明白的是 Google Cloud Platform 中的项目与 YouTube 帐户之间的关系应该如何。
这与将域范围的权限委派给服务帐户有关吗?
那么您是否需要启用 G Suite?
我看到一个类似的问题How to grant access to Youtube Reporting API for a google service account? 存在,但是自上次响应以来,那个可能有点老了。我希望我的示例和补充内容能为这个问题带来新的曙光。
有人有工作样本吗?可能是其他语言。只要流程畅通。