我正在尝试使用Google Calendar API检索在域entreprise.tn
中编程的所有事件。
在Google管理控制台上,我创建了一个新项目和一个具有owner
角色的新服务帐户,如that thread所述。
我启用了that thread所述的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域范围授权时生成的文件。
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();
上被屏蔽
您能告诉我我错过了什么吗?。预先感谢。
Events events = service.events().list([email protected])
.setOrderBy("startTime")
.setSingleEvents(true)
.execute();
HTH