首页 > 解决方案 > 从电子邮件地址获取谷歌日历 ID

问题描述

我正在使用服务帐户 service@entreprise.tn在 Google 日历上插入一个新活动。

我无法指定的organizer或。我的代码是:creatorevent

            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.

非常感谢。

标签: javagoogle-apigoogle-calendar-apigoogle-api-java-clientservice-accounts

解决方案


执行events.patch并更新Event上的 Organizer 字段 ,默认情况下, Organizer 属性设置为创建活动的人员或服务帐户。

冒充

If the service account has been set up with domain wide delegation to a gsuie domain you can impersonate one of the users on the domain and the organizer will be the user who was impersonated.


推荐阅读