我想定期运行一个应用程序(在 AWS Lambda 上),它使用 Youtube 的报告 API获取报告并将报告存储在数据库中。我是 Youtube 频道的所有者。
但是,我在设置授权时遇到了问题。文档提到了OAuth的许多流程。其中,服务帐户流程似乎很适合这里,因为我没有尝试访问任何其他用户的数据,而且我的应用程序没有 UI。但是,他们提到“YouTube Reporting API 和 YouTube Analytics API 不支持此流程”。对于其他流程,即服务器端和客户端,看起来我需要一个 UI 应用程序。
我在本地运行了他们的Java 代码示例,它打开了浏览器进行授权。
我想知道是否可以在没有 UI/浏览器支持的情况下完成授权。这似乎是一个应该支持的常见用例。
这个相关的堆栈溢出答案提到“相反,创建和使用网络客户端谷歌凭据。存储和使用从流程中生成的令牌。”。如果我理解正确,我需要从谷歌开发控制台生成客户端 ID 和客户端密码,然后可能使用oauth 游乐场生成访问令牌。但是,此令牌将在 24 小时内过期。我可以不断刷新令牌,但这似乎是一种解决方法。
如果不支持,我正在考虑的另一种方法是我的应用程序发送一封带有身份验证链接的电子邮件,并在电子邮件收件人打开链接并登录后继续运行。我想知道获取该链接是否可行谷歌的 oauth 库。
注意:我没有使用 Google 的 App Engine 或 Compute Engine。
java google-api-java-client google-oauth service-accounts youtube-analytics-api