Java “列表可见”;新";域中的Google站点

Java “列表可见”;新";域中的Google站点,java,google-api,google-drive-api,google-api-java-client,google-sites,Java,Google Api,Google Drive Api,Google Api Java Client,Google Sites,我试图使用驱动器API和Google Java客户端库来检索“新版本”Google站点,我们域中的单个用户可以访问这些站点 我能够检索网站,但前提是用户对该网站具有“编辑”权限。如果我将用户设置为“仅查看已发布的站点”,则该站点将不会显示在结果中(请参见下面的代码片段) 我也很难从服务中检索已发布的站点url。感谢您的帮助 public Response getFiles(@PathParam("userId") String userId) throws GeneralSecurityExc

我试图使用驱动器API和Google Java客户端库来检索“新版本”Google站点,我们域中的单个用户可以访问这些站点

我能够检索网站,但前提是用户对该网站具有“编辑”权限。如果我将用户设置为“仅查看已发布的站点”,则该站点将不会显示在结果中(请参见下面的代码片段)

我也很难从服务中检索已发布的站点url。感谢您的帮助

public Response getFiles(@PathParam("userId") String userId) throws  GeneralSecurityException, IOException  {
    Drive service = GoogleServices.getDriveService(userId);

    Files.List list = service.files().list()
    .setOrderBy("name")
    .setQ("mimeType = 'application/vnd.google-apps.site'")
    .setFields("nextPageToken, files(*)")
    .setPageSize(100);

    for (File fileObj : files.getFiles()) {
       System.out.println("fileobj:" + fileObj.toPrettyString());
    }
}

public static Drive getDriveService(String userEmail) throws GeneralSecurityException,IOException {
  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)
    .setApplicationName("Drive Service")
    .setHttpRequestInitializer(credential).build();
  return service;
}

你可以查看这篇由tehhowch-回复的SO帖子。