首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用使用服务帐户访问Team

如何使用使用服务帐户访问Team
EN

Stack Overflow用户
提问于 2020-04-02 14:57:45
回答 1查看 809关注 0票数 0

下午好!

我有困难访问谷歌团队驱动器。

我需要从本地存储创建文件夹和上传文件,所有这些都应该由我的应用程序来完成。

目前,我已经学会了连接到我的个人谷歌驱动器和上传文件那里。我的连接到个人存储的代码:

代码语言:javascript
运行
复制
        Drive service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential) //
                .setApplicationName(APPLICATION_NAME).build();


        // Print the names and IDs for up to 10 files.
        FileList result = service.files().list().setPageSize(10).setFields("nextPageToken, files(id, name)").execute();
        List<File> files = result.getFiles();
        if (files == null || files.isEmpty()) {
            System.out.println("No files found.");
        } else {
            System.out.println("Files:");
            for (File file : files) {
                System.out.printf("%s (%s)\n", file.getName(), file.getId());
            }
        }

告诉我,如何在java中连接到并在那里上传文件?谢谢您:)

EN

Stack Overflow用户

回答已采纳

发布于 2020-04-02 16:44:47

使用java中的服务帐户连接到team驱动器

假设您已经满足了先决条件,这是

创建Google服务account

  • Downloading及其credentials

  • Either的
  • 与服务帐户共享团队驱动器,或启用域范围的委托来模拟访问team

的用户。

您的代码应该如下所示:

代码语言:javascript
运行
复制
   private static final String APPLICATION_NAME = "YOUR APPLICATION";
   private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();

   private static final List < String > SCOPES = Collections.singletonList("XXXINSERTHEREYOURSCOPEXXXX");

   public static void main(String...args) throws IOException, GeneralSecurityException {
    final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();

    File pk12 = new File("quickstartserv.p12");
    String serviceAccount = "EMAIL FO YOUR SERVICE ACCOUNT.iam.gserviceaccount.com";

    // Build service account credential.Builder necessary for the ability to refresh tokens

    GoogleCredential getCredentials = new GoogleCredential.Builder()
     .setTransport(HTTP_TRANSPORT)
     .setJsonFactory(JSON_FACTORY)
     .setServiceAccountId(serviceAccount)
     .setServiceAccountPrivateKeyFromP12File(pk12)
     .setServiceAccountScopes(SCOPES)
     .setServiceAccountUser("xxx") //IF YOU WANT TO IMPERSONATE A USER
     .build();

    // Build a new authorized API client service.

    Drive service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials)
     .setApplicationName(APPLICATION_NAME)
     .build();

     FileList result = service.files().list().setPageSize(10).setQ('"ID OF THE SHARED DRIVE" in parents').setIncludeTeamDriveItems(true).setSupportsTeamDrives(true).setFields("nextPageToken, files(id, name)").execute();
     ...
   }

请注意,setIncludeTeamDriveItems(true)setSupportsTeamDrives(true)是从共享驱动器检索文件所必需的。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60994563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档