【问题标题】:In GAS trigger event code, how to find out which Google calendar event was updated?在 GAS 触发事件代码中,如何找出更新了哪个 Google 日历事件?
【发布时间】:2017-07-12 22:31:56
【问题描述】:

使用 Google Apps 脚本中的高级日历 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);
}

而日志输出为:

更新事件:{authMode=FULL, calendarId=mycalendar@mydomain.com, triggerUid=1325034127}

那个TriggerUID是触发器的ID,所以每次调用这个处理程序时都是一样的。

你知道我怎样才能知道哪个日历事件已更新吗?

(注意:在谈论日历中的触发器时,事件一词被重载:有一个日历事件,如约会,以及更新事件,当约会更改时)

]1

【问题讨论】:

  • 您好,介意分享一下您是如何为日历事件创建触发器处理程序的吗?
  • 当然 - 处理程序只是我的 AppScript 项目中的一个函数,我称它为triggerOnUpdate。然后在项目浏览器的 Resources 下,我选择了 Current Project's Triggers 并选择了该功能,其中 From Calendar 和 Entry Updated - 您可以在上面的屏幕截图中看到。
  • 太奇怪了,我以前从未见过这个选项,我也没有这个选项,你的脚本是绑定到什么的吗?你添加了可安装的触发器吗?也许是一些特定的范围?
  • 您是否启用了高级日历 API?你可能需要那个。或者可能是我在早期访问计划中?无论如何,它只是可安装触发器的使用界面 - 所以我想你可以在代码中做同样的事情。
  • 您是否处于应用脚本/appmaker 的早期访问阶段?我在那里,因为 TT 但我以前从未见过触发器!是的,我尝试了alendars API 和所有这些!我们可能参加不同的抢先体验计划!

标签: events google-apps-script calendar google-calendar-api


【解决方案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

【讨论】:

    猜你喜欢
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2011-05-13
    • 2022-11-03
    • 2014-09-19
    相关资源
    最近更新 更多