如何使用Drive SDK列出域中的所有Google文档?

问题描述 投票:2回答:3

我想列出google域中的所有文档。我已尝试按照google文档中的说明进行操作:https://developers.google.com/drive/v2/reference/files/list#examples

我创建了如下服务:

 HttpTransport httpTransport = new NetHttpTransport();
  JacksonFactory jsonFactory = new JacksonFactory();
  GoogleCredential credential = new GoogleCredential.Builder()
      .setTransport(httpTransport)
      .setJsonFactory(jsonFactory)
      .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
      .setServiceAccountScopes(Arrays.asList(DriveScopes.DRIVE))
      .setServiceAccountUser(userEmail)
      .setServiceAccountPrivateKeyFromP12File(
          new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH))
      .build();
  Drive service = new Drive.Builder(httpTransport, jsonFactory, null)
      .setHttpRequestInitializer(credential).build();

  Files.List request = service.files().list();

当我如下执行此请求时:

 FileList files = request.execute();

我只有'userEmail'(创建服务时提供)文件。

我如何获取所有域Google驱动器文件??我曾经使用过超级管理员,但无法使用。

java google-app-engine google-drive-api
3个回答
6
投票

要获取Google Apps域中的所有文件,您需要:

  1. 使用您的服务帐户和应用程序设置domain-wide delegation of authority。>>
  2. 使用Directory APIusers.list()API调用来确定Google Apps域中的所有用户。
  3. 作为每个用户,呼叫files.list(q='"me" in owners')以获得该用户拥有的所有文件的列表。
  4. 所有这些调用的合并结果将是您的Google Apps域中的所有文件。


1
投票

您不能:),因为Google云端硬盘文件所有权逻辑是以用户为中心的。


0
投票

我试图对Node.Js做同样的事情,但是我不明白最后一步,第3步。我该怎么做? (调用files.list(所有者中的q =““ me””)以获取用户拥有的所有文件的列表)

© www.soinside.com 2019 - 2024. All rights reserved.