有没有办法通过 Google Apps 脚本修改实时日历事件?
Is there a way to modify a live Calendar event through Google Apps Script?
目标:通过 Google 日历添加与会者添加到现场创建的现场活动中
上下文:正在创建的实时事件(左)+ 日历插件(右)
代码片段:
current_user = e.calendar.calendarId;
event_id = e.calendar.id;
var calendar = CalendarApp.getCalendarById(current_user);
var event = calendar.getEventById(event_id);
但是,当我打开一个事件时,current_user
和event_id
有值,event
似乎是null
,因为这个事件在技术上不是'created' 还。如果它已经创建,那么一个简单的 event.addGuest()
就可以了
甚至可以在创建直播活动时对其进行自定义吗?我找到的每个示例都只更新已创建的事件。
编辑:忘记post我正在使用的范围。 appsscript.json 的片段在下面
{
....,
"oauthScopes": [
"https://www.googleapis.com/auth/calendar.addons.current.event.read",
"https://www.googleapis.com/auth/calendar.addons.current.event.write",
"https://www.googleapis.com/auth/calendar.addons.execute",
"https://www.googleapis.com/auth/script.external_request",
"https://www.google.com/calendar/feeds"
],
"addOns": {
"common": {
...
}
},
"calendar": {
"currentEventAccess": "READ_WRITE",
...
}
}
}
将您的代码更改为:
if (!e.calendar.capabilities.canAddAttendees) {
return;
}
CardService.newCalendarEventActionResponseBuilder()
.addAttendees(["example1@example.com", "example2@example.com"])
.build();
目标:通过 Google 日历添加与会者添加到现场创建的现场活动中
上下文:正在创建的实时事件(左)+ 日历插件(右)
代码片段:
current_user = e.calendar.calendarId;
event_id = e.calendar.id;
var calendar = CalendarApp.getCalendarById(current_user);
var event = calendar.getEventById(event_id);
但是,当我打开一个事件时,current_user
和event_id
有值,event
似乎是null
,因为这个事件在技术上不是'created' 还。如果它已经创建,那么一个简单的 event.addGuest()
就可以了
甚至可以在创建直播活动时对其进行自定义吗?我找到的每个示例都只更新已创建的事件。
编辑:忘记post我正在使用的范围。 appsscript.json 的片段在下面
{
....,
"oauthScopes": [
"https://www.googleapis.com/auth/calendar.addons.current.event.read",
"https://www.googleapis.com/auth/calendar.addons.current.event.write",
"https://www.googleapis.com/auth/calendar.addons.execute",
"https://www.googleapis.com/auth/script.external_request",
"https://www.google.com/calendar/feeds"
],
"addOns": {
"common": {
...
}
},
"calendar": {
"currentEventAccess": "READ_WRITE",
...
}
}
}
将您的代码更改为:
if (!e.calendar.capabilities.canAddAttendees) {
return;
}
CardService.newCalendarEventActionResponseBuilder()
.addAttendees(["example1@example.com", "example2@example.com"])
.build();