按照 Google 的文档,您应该能够使用 YouTube Reporting API,而无需使用服务帐户进行用户身份验证。
目前我有一个非常简单的示例,它应该为我提供可用工作的列表,但也可能为空。但我的 403 权限被拒绝。
Request:
$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();
Response:
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
- 谷歌+ API(我对此表示怀疑是否真的有必要)
我不明白的是 Google Cloud Platform 中的项目和 YouTube 帐户之间的关系应该如何。
这有关系吗将域范围的权限委派给服务帐户?
那么您是否需要启用 G Suite?
我看到一个类似的问题如何为 Google 服务帐户授予对 Youtube Reporting API 的访问权限?存在,但自上次响应以来该内容可能有点老化。我希望我的示例和补充能为这个问题带来新的启发。
有人有工作样本吗?可能是其他语言。只要水流畅通。
通常,服务帐户可用于模拟用户帐户。中提到进行授权调用准备进行授权的 API 调用.
但要回答这个问题,服务帐户不适用于 YouTube API:
服务帐户不适用于 YouTube 数据 API 调用,因为
服务帐户需要关联的 YouTube 频道,并且您不能
将新的或现有的渠道与服务帐户相关联。如果您使用
服务帐户调用YouTube数据API,API服务器返回
错误类型设置为未经授权且原因设置为
youtube需要注册。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)