получить все события в домене, используя Google Calendar API - PullRequest
1 голос
/ 18 апреля 2020

Я пытаюсь получить все события, запрограммированные в домене entreprise.tn, используя API Календаря Google.

В консоли администратора Google я создаю новый проект и новую учетную запись службы с ролью owner как описано в этой теме .

Я включил Google Calendar API и Admin SDK, как описано в этой теме .

в списке областей, добавленных в Консоль администратора> Безопасность : https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.group, https://www.googleapis.com/auth/admin.directory.resource.calendar, https://www.googleapis.com/auth/calendar.events.readonly, https://www.googleapis.com/auth/calendar.readonly

Мой код:

        Calendar service = getCalendarService();
        List<Event> items = new ArrayList<Event>();
        String pageToken = null;
        do
        {
            Events events = service.events().list("service-account-esp1@my-first-project-274515.iam.gserviceaccount.com").setPageToken(pageToken).execute();
            items = events.getItems();

            for (Event event : items)
            {
                System.out.println(event.getSummary());
            }
          pageToken = events.getNextPageToken();
        } while (pageToken != null);

        if (items.isEmpty())
        {
            System.out.println("Empty");
        }
        else
        {
             System.out.println("Exists");
        }

файл my-first-project-274515-361633451f1c.json - это сгенерированный файл при создании учетной записи службы и выполнении G Suite Domain- Широкое делегирование полномочий.

* service-account-esp1@my-first-project-274515.iam.gserviceaccount.com - это электронная почта клиента

Выглядит нормально, все необходимые настройки выполнены. Как всегда, я получил это исключение:

avr. 18, 2020 12:28:59 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly AVERTISSEMENT: невозможно установить разрешения для C: \ Users \ Administrateur \ учетные данные, потому что вы работаете не в POSIX файловая система. Календари начислений: сб 18 апреля 12:28:59 BST 2020 a Исключение в потоке "main" java .lang.IllegalArgumentException на com.google.common.base.Preconditions.checkArgument (Предварительные условия. java: 128) на com .google.api.client.util.Preconditions.checkArgument (Предварительные условия. java: 35) на com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets.getDetails (GoogleClientSecrets. java: 82) на странице com. .google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow $ Builder. (GoogleAuthorizationCodeFlow. java: 197) по адресу tn.esprit.spring.google.calendar.Service.getCredentials (Service. java: 75) в tn.esprit.spring.google.calendar.Service.getCalendarService (Сервис. java: 90) на tn.esprit.spring.google.calendar.Service.main (Тест. java: 102)

заблокирован GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES).setDataStoreFactory(DATA_STORE_FACTORY).setAccessType("offline").build();

Не могли бы вы сказать мне, что я пропустил? Заранее спасибо.

1 Ответ

3 голосов
/ 20 апреля 2020

Вместо этого вы должны использовать пользователя почты:

Events events = service.events().list(user@entreprise.tn)
                .setOrderBy("startTime")
                .setSingleEvents(true)
                .execute();

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...