允许通过 API v3 访问 Google 服务帐户 YouTube 上传访问权限

Posted

技术标签:

【中文标题】允许通过 API v3 访问 Google 服务帐户 YouTube 上传访问权限【英文标题】:Allowing Google Service Account YouTube Upload Access via API v3 【发布时间】:2015-02-12 00:04:08 【问题描述】:

我想在没有用户参与的情况下自动将视频上传到 YouTube,所以我创建了一个服务帐户,跳过了障碍,一切看起来都很棒,然后尝试上传,第一个块,我的代码因这个 Google_Exception 异常而爆炸:

“无法启动可恢复上传(HTTP 401:youtube.header,未授权)”

然后我在 YouTube API v3 上挖掘发现错误信息:

https://developers.google.com/youtube/v3/docs/errors

“如果您尝试使用 OAuth 2.0 服务帐户流程,通常会出现此错误。YouTube 不支持服务帐户,如果您尝试使用服务帐户进行身份验证,您将收到此错误错误。”

这是正确的吗?我无法使用服务帐号将视频自动上传到 YouTube?

(浪费了几天的辛苦工作!)

【问题讨论】:

try this 感谢克劳德。刚才我正要走这条路。你提醒了我。 【参考方案1】:

是的,没错。

前进的方法是进行手动授权并获取生成的“刷新令牌”,然后将其用于任何自动上传。

确保在执行任何其他操作之前将刷新令牌添加到 php Google_Client 对象。

我现在正在自动上传到 YouTube。

【讨论】:

谢谢!我遇到了完全相同的问题,您自己的回答给了我有用的提示。对于那些也有这个问题的人:需要一种叫做“离线访问”的东西。谷歌refresh_token 和离线访问。您需要一个“Web 应用程序的客户端 ID”才能获得 refresh_token。对于所有其他请求,您需要客户端 ID 和 refresh_token。这是一个有用的链接developers.google.com/accounts/docs/OAuth2WebServer#offline 当然你还需要一个客户端密码 ;) domsammut.com/code/… 是如何做到这一点的一个很好的参考

以上是关于允许通过 API v3 访问 Google 服务帐户 YouTube 上传访问权限的主要内容,如果未能解决你的问题,请参考以下文章

如何使用服务帐户通过 .NET C# 访问 Google Analytics API V3?

Google Maps API V3 使用限制是按网站访问者还是按 Web 服务器?

使用服务帐户通过 OAuth 2.0 调用 v3 Google 日历 API 时出现“需要登录”401 未经授权的消息

Javascript - Google Drive v3 API和功能

ASP.Net - Google Calendar API V3 redirect_uri_mismatch 错误

Youtube API v3:使用服务帐户访问 youtube 视频