java - 从电子邮件地址获取谷歌日历 ID
问题描述
我正在使用服务帐户 service@entreprise.tn
在 Google 日历上插入一个新活动。
我无法指定的organizer
或。我的代码是:creator
event
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并更新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.
推荐阅读
- scala - 如何使用 saveAsHadoopFile 或 MultiTextOutputFormat 保存数据框
- robotframework - 带有 Robotframework UI 测试用例的 Jenkins 管道
- android - 我可以在同一个 onDataChange 函数中获取 2 个不同类的值吗
- angular - Angular 5 - 通过服务或输出将数据从父级传递到组件发送整个列表
- git - Git 签出而不在 Xcode 项目中提交用户界面状态文件?
- git - 如何在使用 git diff 时跳过一些文件?
- reactjs - 是否不鼓励使用 Context 进行组件之间的通信?
- ios - 导航控制器从第二个转换开始显示
- c - 最长的字符串
- java - 如何使用 java 8 对父子实体进行分组