使用Google Calendar API检索域内的所有事件

问题描述 投票:1回答:1

我正在尝试使用Google Calendar API检索在域entreprise.tn中编程的所有事件。

在Google管理控制台上,我创建了一个新项目和一个具有owner角色的新服务帐户,如that thread所述。

我启用了that thread所述的Google Calendar API和Admin SDK。

在[[管理控制台>安全性上添加的范围列表是:https://www.googleapis.com/auth/admin.directory.userhttps://www.googleapis.com/auth/admin.directory.grouphttps://www.googleapis.com/auth/admin.directory.resource.calendarhttps://www.googleapis.com/auth/calendar.events.readonlyhttps://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域范围授权时生成的文件。

service-account-esp1@my-first-project-274515.iam.gserviceaccount.com

客户电子邮件

看起来不错,所有必需的配置都已完成。多么糟糕,我遇到了例外情况:

avr。 2020年18月18日下午12:28:59com.google.api.client.util.store.FileDataStoreFactorysetPermissionsToOwnerOnly AVERTISSEMENT:无法为以下项设置权限C:\ Users \ Administrateur \ Credentials,因为您正在运行非POSIX文件系统。收费日历:2020年4月18日星期六12:28:59线程“ main”中的异常java.lang.IllegalArgumentException在com.google.common.base.Preconditions.checkArgument(Preconditions.java:128)在com.google.api.client.util.Preconditions.checkArgument(Preconditions.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(Service.java:90)在tn.esprit.spring.google.calendar.Service.main(Test.java:102)

它在GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES).setDataStoreFactory(DATA_STORE_FACTORY).setAccessType("offline").build();上被屏蔽

您能告诉我我错过了什么吗?。预先感谢。

google-calendar-api
1个回答
1
投票
您应该改用邮件用户:

Events events = service.events().list([email protected]) .setOrderBy("startTime") .setSingleEvents(true) .execute();

HTH
© www.soinside.com 2019 - 2024. All rights reserved.