Я пытаюсь получить все события, запрограммированные в домене 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();
Не могли бы вы сказать мне, что я пропустил? Заранее спасибо.