Java使用YouTube Data API v3实现登录时过时导入类问题如何解决
Java调用YouTube Data API授权过时类替代方案
方案1:补充依赖复用原有代码逻辑
你提到的两个类仅从核心包拆分到了独立扩展组件,并未完全废弃,补充对应依赖后即可直接使用原有代码:
Maven依赖配置
<dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client-java6</artifactId> <version>1.34.1</version> </dependency> <dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client-jetty</artifactId> <version>1.34.1</version> </dependency>
Gradle依赖配置
implementation 'com.google.oauth-client:google-oauth-client-java6:1.34.1' implementation 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'
添加依赖后原有导入语句和授权代码不需要修改,可直接运行完成账号授权。
方案2:无扩展包依赖手动实现授权逻辑
如果不想引入jetty相关依赖,可通过以下步骤手动完成授权:
- 构建授权链接引导用户在浏览器完成账号授权
- 捕获回调返回的authorization code
- 用code兑换凭证生成Credential对象
对应代码示例:
// 构建授权链接 String authorizationUrl = flow.newAuthorizationUrl() .setRedirectUri("urn:ietf:wg:oauth:2.0:oob") .build(); System.out.println("请在浏览器打开以下链接完成授权: " + authorizationUrl); System.out.println("输入授权后返回的code: "); // 读取用户输入的code String code = new BufferedReader(new InputStreamReader(System.in)).readLine(); // 兑换凭证 Credential credential = flow.newTokenRequest(code) .setRedirectUri("urn:ietf:wg:oauth:2.0:oob") .execute();
该方案需要你在Google Cloud控制台将OAuth客户端的授权重定向URI配置为
urn:ietf:wg:oauth:2.0:oob,适用桌面端测试场景。
注意事项
- 授权申请的scope需包含YouTube Data API对应权限,常用权限为
https://www.googleapis.com/auth/youtube.force-ssl - 生成的Credential对象可直接传入YouTube客户端构造参数,后续接口调用逻辑和官方示例一致
内容的提问来源于stack exchange,提问作者NiniMine
相关产品推荐
相关产品推荐

