gpt4 book ai didi

events - 在 GAS 触发事件代码中,如何找出更新了哪个 Google 日历事件?

转载 作者:行者123 更新时间:2023-12-04 12:45:48 24 4
gpt4 key购买 nike

使用 Google Apps Script 中的高级日历 API 服务( https://developers.google.com/apps-script/advanced/calendar ),我发现您可以在更新日历时调用事件处理函数(请参见屏幕截图),并且工作正常:每次事件发生时添加或更改似乎调用了我的函数。但是我无法弄清楚哪个日历事件(即约会)已被修改。使用 1 arg (e) 调用处理程序函数,该函数属于“事件”类型,但它似乎不包含 ID 或对已更新日历事件的任何引用。这是我的处理程序代码:

function triggeredOnUpdate(e){
Logger.log('Update event: %s', e);

var calendarId = 'primary';
var eventId = e.<????what goes here???>;
var event = Calendar.Events.get(calendarId, eventId);

Logger.log('Running update on Calendar Event: %s', event.summary);
colourEvent(calendarId, event);
}
日志输出是:

Update event: {authMode=FULL, calendarId=mycalendar@mydomain.com, triggerUid=1325034127}


该 TriggerUID 是触发器的 ID,因此每次调用此处理程序时它都是相同的。
你知道我怎样才能知道哪个日历事件已经更新了吗?
(注意:在谈论日历中的触发器时,事件一词被重载了:有一个日历事件,如约会,以及更新事件,当约会发生更改时)
1 ] 1

最佳答案

按照此工作流程获取事件 ID:
https://developers.google.com/apps-script/guides/triggers/events#eventupdated

总结:使用 Calendar.Events.list使用您在函数参数中获得的日历地址来执行完全同步,其中包括 nextSyncToken可以保存在脚本属性中。

下次触发事件时,您可以通过提供 nextSyncToken 来执行增量同步。至 Calendar.Events.list .这将为您提供自上次同步以来的事件。

也可以看看:
https://developers.google.com/calendar/v3/reference/events/list
https://developers.google.com/calendar/v3/reference/events#resource

https://developers.google.com/apps-script/advanced/calendar

关于events - 在 GAS 触发事件代码中,如何找出更新了哪个 Google 日历事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42398884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com