我想定期运行一个应用程序(在AWS Lambda上),该应用程序使用Youtube的reporting API获取报告并将报告存储在数据库中。我是YouTube频道的所有者。
但是,我在设置授权时遇到了问题。该文档提到了OAuth的许多flows。其中,服务帐户流似乎很合适,因为我没有尝试访问任何其他用户的数据,并且我的应用程序没有UI。但是,他们提到“ YouTube报告API和YouTube分析API不支持此流程”。对于其他流程(即服务器端和客户端),看来我需要UI应用程序。
我在本地运行了他们的Java code samples,它打开了浏览器进行授权。
我想知道是否可以在没有UI /浏览器支持的情况下完成授权。这似乎是应该支持的常见用例。
此相关堆栈溢出answer提及“相反,请创建并使用Web客户端google凭据。存储并使用从流生成的令牌。”如果我正确理解这一点,则需要从google dev console生成客户端ID和客户端密钥,然后可能使用oauth playground生成访问令牌。但是,此令牌将在24小时内过期。我可以不断刷新令牌,但这似乎是一种解决方法。
[如果不支持,我正在考虑的替代方法是我的应用程序发送带有auth链接的电子邮件,并在电子邮件收件人打开链接并登录后继续运行。我想知道是否获得该链接可以在Google的oauth库中使用。
注意:我没有使用Google的App Engine或Compute Engine。
YouTube api不支持服务帐户授权。使用脱机访问后,您将需要使用Oauth2授权代码。这将为您提供一个刷新令牌,该令牌可在将来随时用于请求新的访问令牌。
您将需要将此刷新令牌连同代码一起上载到服务器,然后它就可以访问您的数据而无需请求用户的访问。