java YouTube数据API V3自动化授权过程,而不是手动干预
我正在使用YouTube数据API V3将视频上传到我的YouTube频道。提供的样本代码中的授权代码需要手动干预授权过程。每次我重新启动服务器时,它都会打开浏览器并询问我的身份验证和权限。对于我的Windows PC来说,这很好,但我将把这段代码部署到一台远程Linux机器上,我只有SSH访问权限
有没有办法使这个过程自动化?类似于使用普通凭证(用户名和密码)访问API或一次性执行此过程(永久身份验证/授权)
我确实读了一些关于这个主题的帖子,这些帖子指向使用刷新令牌
# 1 楼答案
您如何存储您的凭据?如果服务器关闭,您的凭据也会随之丢失吗?你可以考虑把它存储在一个外部数据库中,或者如果它是一个Web应用程序,你可以把它存储为cookie。
刷新令牌只颁发一次(在第一次初始身份验证期间),因此,如果您之前已授权您的帐户,则需要访问您的应用权限并将其删除。然后再次尝试授权,并保存该刷新令牌。如果您正确地保存了刷新令牌(使用cookies/数据库/任何东西),那么您将在请求时获得一个新的访问令牌。使用此方法,您不必每次都重新授权
# 2 楼答案
也许有点晚了
1)在Google Developers Console中创建新项目
2)创建oauth 2.0客户端id。在应用程序类型选择-其他
3)下载json文件,将其重命名为“client_secret.json”,并将其添加到/resources文件夹(用于Gradle项目)
4)创建java文件并添加以下代码:
请注意以下代码行:
对于authorize()方法中的此方法:
对于getService()方法中的此方法:
所以你可以像这样使用Youtube服务
# 3 楼答案
通常我会说你应该使用一个服务帐户,这样你就根本不需要进行身份验证了。但是,YouTube API不支持服务帐户身份验证
我无法解释为什么重新启动后需要刷新身份验证。您的代码应保存包含刷新令牌的凭据文件。即使在重新启动后,刷新令牌也应继续工作。我猜你的代码有问题
这是一个Java Quickstart示例,显示了如何保存凭据。它是为人而设的api,而不是Youtube。如果您需要任何帮助,请在Youtube上修改它。服务器重新启动时,不会删除这些凭据
答:至于您的服务器问题以及如何使其自动化。答案是你不能。无法通过浏览器窗口外的身份验证。您应该在windows pc上进行身份验证,将我提到的凭据文件复制到您的服务器上