YouTube API v3 Java授权

YouTube API v3 Java授权,java,youtube-api,credentials,youtube-data-api,Java,Youtube Api,Credentials,Youtube Data Api,我正在使用YouTube数据API Java将视频上传到我的YouTube频道。 我已经在我的Windows PC上测试了它,并且成功了。 但是示例中的授权通过打开浏览器窗口登录到Google来生成凭证实例。 这在我的Windows PC上很好,但我正试图让这段代码在我只有SSH访问权限的远程linux机器上运行 我在stackoverflow中搜索了类似的问题,找到了完全相同的问题。但是,由于这个问题没有谷歌工程师要求的特定标签,我将它作为一个新问题发布 如果你有什么想法可以帮忙的话,我将非常

我正在使用YouTube数据API Java将视频上传到我的YouTube频道。 我已经在我的Windows PC上测试了它,并且成功了。 但是示例中的授权通过打开浏览器窗口登录到Google来生成凭证实例。 这在我的Windows PC上很好,但我正试图让这段代码在我只有SSH访问权限的远程linux机器上运行

我在stackoverflow中搜索了类似的问题,找到了完全相同的问题。但是,由于这个问题没有谷歌工程师要求的特定标签,我将它作为一个新问题发布

如果你有什么想法可以帮忙的话,我将非常感激。
谢谢。

您可以使用SSH作为代理,然后使用本地浏览器使用该代理

ssh-nd8080user@server.example.com 这设置了一个代理。只需将浏览器的代理设置编辑为IP:localhost端口:8080,您的流量就会通过SSH流出

请记住,在禁用代理之前,浏览器的所有流量都将通过代理,因此在登录时不要违反网络策略。例如,我可能建议使用Chrome的私有实例


注意:这可能不适用于域查找,因此您需要路由器的SSH主机IP的本地地址。

我找到了实现这一点的方法并找到了它。 我在办公室里按照指示做了

您需要一个新的OAuth客户机ID,并将其设置为开发者控制台中的服务帐户-api&auth-Credentials,然后下载P12密钥

您还需要从开发人员控制台将服务帐户的权限更改为Is owner

然后更改代码

Credential credential = Auth.authorize(scopes, "uploadvideo");

如上面的URL中所指定。emailAddress是来自服务帐户的电子邮件地址,P12文件名必须更改,Collections.~~应更改为作用域原始示例中的预制文件,最后serviceAccountUser应为您的原始Gmail ID


我用上述方法成功了,希望能有所帮助。

谢谢,我不知道你能做到。但当我需要自动化时,我需要另一个解决方案,我找到了一个。它涉及到服务器到服务器OAuth2.0。我会自己回答的。谢谢你好,霍华德-如何将服务帐户设置为Is owner?我只能授予它编辑权限,其中我的用户帐户是所有者。当我尝试设置ServiceAccountUser时,我得到了一个401未经授权。您可以在开发者控制台中更改它,选择您的项目,单击左侧框架中的权限。在右边的框架中,您应该看到帐户,您可以将它们设置为Is owner。哦,在setServiceAccountUser中,我把我原来的Gmail账号***@Gmail.com放进去。我可以添加一个用户账号作为所有者,而不是服务账号。但我想清楚了我的问题,你是怎么做到的?怎么了?HowardYang,你能帮我吗?erjobertolazo@gmail.com,给我发电子邮件,我需要帮助
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(emailAddress)
.setServiceAccountPrivateKeyFromP12File(new File("MyProject.p12"))
.setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN))
.setServiceAccountUser("user@example.com")
.build();