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

Cla*_*aud 10 youtube-api service-accounts

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

"无法启动可恢复上传(HTTP 401:youtube.header,Unauthorized)"

然后我在YouTube API v3上挖掘并找到错误信息:

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

"如果您尝试使用OAuth 2.0服务帐户流程,则会出现此错误.YouTube不支持服务帐户,如果您尝试使用服务帐户进行身份验证,则会收到此错误."

它是否正确?我无法使用服务帐户自动将视频上传到YouTube?

(这是浪费了几天努力工作!)

Cla*_*aud 9

是的,这是正确的.

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

确保在执行任何其他操作之前将刷新令牌添加到PHP GoogleClient对象.

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

  • 谢谢!我有完全相同的问题,你自己的答案给了我有用的提示.对于那些也有这个问题的人:需要一种叫做"离线访问"的东西.谷歌的'refresh_token`和离线访问.您需要"Web应用程序的客户端ID"来获取`refresh_token`.对于所有其他请求,您需要客户端ID和`refresh_token`.这是一个有用的链接https://developers.google.com/accounts/docs/OAuth2WebServer#offline (3认同)
  • https://www.domsammut.com/code/php-server-side-youtube-v3-oauth-api-video-upload-guide是如何做到这一点的一个很好的参考 (2认同)