Con*_*scu 5 java google-api-java-client google-drive-api
我有 java 代码使用服务帐户连接到谷歌驱动器,这有效:
JsonFactory JSON_FACTORY = new GsonFactory();
GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("sa.json"))
.createScoped(List.of(DriveScopes.DRIVE))
.createDelegated("foo@bar.com");
return new Drive.Builder(GoogleNetHttpTransport.newTrustedTransport(), JSON_FACTORY, credential)
.setApplicationName("my-drive-app")
.build();
Run Code Online (Sandbox Code Playgroud)
但是,我收到了一条GoogleCredential已弃用的弃用警告,我应该使用GoogleCredentials(注意末尾的额外 s)来代替google-auth-library。
GoogleCredentials我可以这样初始化:
GoogleCredentials credential = GoogleCredentials.fromStream(new FileInputStream("sa.json"))
.createScoped(List.of(DriveScopes.DRIVE))
.createDelegated("foo@bar.com");
Run Code Online (Sandbox Code Playgroud)
但是我似乎无法弄清楚如何使用这个新GoogleCredentials对象初始化驱动服务。传递它来代替凭证对象会产生编译器错误,并且所有官方 googledrive java 文档都引用了现在已弃用的方法。
有人可以告诉我如何使用新的凭据对象初始化谷歌驱动器吗?
我正在使用的版本:
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.32.1</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.32.1</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-drive</artifactId>
<version>v3-rev20210919-1.32.1</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
要连接到 Google Drive,请使用HttpCredentialsAdapter建立从GoogleCredentials到 的连接GoogleCredential。
样本:
return new Drive.Builder(GoogleNetHttpTransport.newTrustedTransport(), JSON_FACTORY, new HttpCredentialsAdapter(credential))
.setApplicationName("my-drive-app")
.build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1507 次 |
| 最近记录: |