Список видимых "Новых" Сайтов Google в домене - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь использовать Drive 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;
}
...