【发布时间】:2020-04-03 03:52:51
【问题描述】:
背景:谷歌日历>点击新建按钮>进入新活动页面>添加会议
问题:当用户点击添加会议安排会议(第三方服务,而不是环聊)时,如何获取当前活动的会议数据?我尝试使用Calendar.Events.get API,但它返回 404。
我的 appscripts 设置在这里:
当用户安排会议时,会触发
onCalendarEventUpdate函数
{
"timeZone": "America/Los_Angeles",
"addOns": {
"calendar": {
"eventUpdateTrigger": {
"runFunction": "onCalendarEventUpdate"
},
}
}
}
我的onCalendarEventUpdate:
function onCalendarEventUpdate(context: any) {
// I can get calendarId, evnetId
const {
calendar: { calendarId, id: evnetId }
} = context;
// when I try to get event conferenceData, it returns 404
let event;
try {
event = Calendar.Events && Calendar.Events.get(calendarId, evnetId);
if (!event) {
Logger.log(`[getEventsCollectionByCalendarId]event not found`);
}
} catch (e) {
Logger.log(`[getEventsCollectionByCalendarId]error: ${JSON.stringify(e)}`);
}
}
现在错误信息是:
{
"message":"API call to calendar.events.get failed with error: Not Found",
"name":"GoogleJsonResponseException",
"lineNumber":64,
"details":{
"message":"Not Found",
"code":404,
"errors":[{
"domain":"global",
"reason":"notFound",
"message":"Not Found"
}]
}
}
【问题讨论】:
-
你的
evnetId是从哪里得到的? -
通过 eventUpdateTrigger,我可以从函数 onCalendarEventUpdate 的参数中获取
evnetId -
您无法从
Calendar.Events.get获取evnetId,它恰恰相反——您需要向方法提供您以不同方式检索到的事件ID。例如,使用Calendar.Events.list,您可以列出所有事件,包括摘要和事件 ID 等所有重要信息。
标签: google-apps-script gsuite-addons