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

标签 java google-app-engine google-drive-api

我想列出来自谷歌域的所有文档。我已经尝试过谷歌文档中提到的: 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 驱动器文件?我使用了 super 管理员,但我无法获得。

最佳答案

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

  1. 设置 domain-wide delegation of authority使用您的服务帐号和应用。
  2. 使用目录 API users.list()用于确定 Google Apps 域中的所有用户的 API 调用。
  3. 作为每位用户,请调用 files.list(q='"me" in owners')获取用户拥有的所有文件的列表。

所有这些调用的组合结果将是您的 Google Apps 域中的所有文件。

关于java - 如何使用 Drive SDK 列出域中的所有 Google 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483347/

相关文章:

google-app-engine - Google 能否以某种方式访问​​使用 GCP 中的 CSEK 进行静态加密的数据?

java - 将 Vaadin 与谷歌应用引擎一起使用

python - AWS LAMBDA "errorMessage": "[Errno 30] Read-only file system: ' drive-python-quickstart. json'"

google-drive-api - Google 云端硬盘和服务帐户存储限制/配额

java - 正则表达式java从属性中读取

java - PostgreSQL - 安装 JDBC 驱动程序

java - 除了 HtmlUnit 之外还有支持 javascript 的库吗

java - 如何从 junit 中的 java 扩展文件中读取和测试类?我怎样才能访问该类进行测试?

java - Google App Engine 上的 JDO UnsupportedDatastoreFeatureException

c# - 如何创建已经具有 Google Drive API 访问代码和 token 的凭据对象