使用服务帐号的 YouTube 报告 API



按照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 Data API v3
  • YouTube 分析接口
  • Google+ API(如果真的有必要,我对这个表示怀疑)

我不明白的是Google Cloud Platform中的项目与YouTube帐户之间的关系应该如何。

这与将网域范围的权限委派给服务帐号有关吗?

然后,您是否需要启用 G 套件?

我看到一个类似的问题 如何为谷歌服务帐户授予对 Youtube 报告 API 的访问权限? 存在,但自上次响应以来,那个可能有点老了。我希望我的示例和补充将为这个问题提供新的视角。

是否有人有工作样本?可能是其他语言。只要流程畅通。

通常,服务帐户可用于模拟用户帐户。准备进行授权 API 调用中提到了进行授权调用。

但要回答这个问题,服务帐号不适用于 YouTube API:

服务帐号不适用于 YouTube 数据 API 调用,因为 服务帐号需要关联的 YouTube 频道,而您无法 将新渠道或现有渠道与服务帐户关联。如果您使用 服务帐号调用 YouTube 数据 API,API 服务器返回 错误类型设置为"未授权"且原因设置为 youtube注册必填。

相关内容

  • 没有找到相关文章

最新更新