从电子邮件地址获取 google 日历 ID
get google calendar id from an email address
我正在使用 服务帐户 service@entreprise.tn
.
在 Google 日历上插入一个新活动
我无法指定 event
的 organizer
或 creator
。
我的代码是:
Organizer organizer = new Organizer().setEmail("user1@entreprise.tn").setSelf(true);
Creator creator = new Creator().setEmail("user1@entreprise.tn").setSelf(true);
Calendar service = Calendar_Utils.getCalendarService();
Event event = new Event()
.setSummary("Google Calendar API")
.setOrganizer(organizer)
.setCreator(creator);
DateTime startDateTime = new DateTime("2020-04-24T09:00:00.000Z");
EventDateTime start = new EventDateTime()
.setDateTime(startDateTime)
.setTimeZone("Africa/Tunis");
event.setStart(start);
DateTime endDateTime = new DateTime("2020-04-24T10:30:00.000Z");
EventDateTime end = new EventDateTime()
.setDateTime(endDateTime)
.setTimeZone("Africa/Tunis");
event.setEnd(end);
String calendarId = "primary";
event = service.events().insert(calendarId, event).execute();
System.out.printf("Event created: %s\n", event.getHtmlLink() + " - " + event.getOrganizer() + " - " + event.getCreator());
因此,插入了新活动,但组织者和创建者 service@entreprise.tn
而不是 user1@entreprise.tn
。
你能告诉我如何更改我的代码以将组织者设置为 user1@entreprise.tn
。
非常感谢。
执行 events.patch and update the organizer fields on the Event 默认情况下,组织者 属性 设置为创建活动的个人或服务帐户。
假冒
如果已将服务帐户设置为在域范围内委派给 gsuie 域,您可以模拟域中的其中一个用户,组织者将是被模拟的用户。
使用服务帐户创建活动时,您需要impersonate创建活动所代表的用户
在 Java 中,您可以按以下方式进行操作:
GoogleCredential getCredentials = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(serviceAccount)
.setServiceAccountPrivateKeyFromP12File(pk12)
.setServiceAccountScopes(SCOPES)
.setServiceAccountUser("user1@entreprise.tn")
.build();
我正在使用 服务帐户 service@entreprise.tn
.
我无法指定 event
的 organizer
或 creator
。
我的代码是:
Organizer organizer = new Organizer().setEmail("user1@entreprise.tn").setSelf(true);
Creator creator = new Creator().setEmail("user1@entreprise.tn").setSelf(true);
Calendar service = Calendar_Utils.getCalendarService();
Event event = new Event()
.setSummary("Google Calendar API")
.setOrganizer(organizer)
.setCreator(creator);
DateTime startDateTime = new DateTime("2020-04-24T09:00:00.000Z");
EventDateTime start = new EventDateTime()
.setDateTime(startDateTime)
.setTimeZone("Africa/Tunis");
event.setStart(start);
DateTime endDateTime = new DateTime("2020-04-24T10:30:00.000Z");
EventDateTime end = new EventDateTime()
.setDateTime(endDateTime)
.setTimeZone("Africa/Tunis");
event.setEnd(end);
String calendarId = "primary";
event = service.events().insert(calendarId, event).execute();
System.out.printf("Event created: %s\n", event.getHtmlLink() + " - " + event.getOrganizer() + " - " + event.getCreator());
因此,插入了新活动,但组织者和创建者 service@entreprise.tn
而不是 user1@entreprise.tn
。
你能告诉我如何更改我的代码以将组织者设置为 user1@entreprise.tn
。
非常感谢。
执行 events.patch and update the organizer fields on the Event 默认情况下,组织者 属性 设置为创建活动的个人或服务帐户。
假冒
如果已将服务帐户设置为在域范围内委派给 gsuie 域,您可以模拟域中的其中一个用户,组织者将是被模拟的用户。
使用服务帐户创建活动时,您需要impersonate创建活动所代表的用户
在 Java 中,您可以按以下方式进行操作:
GoogleCredential getCredentials = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(serviceAccount)
.setServiceAccountPrivateKeyFromP12File(pk12)
.setServiceAccountScopes(SCOPES)
.setServiceAccountUser("user1@entreprise.tn")
.build();