【问题标题】:Google APIs Triggers not identifying if its Participants or OrganizerGoogle API 触发器无法识别其参与者或组织者
【发布时间】:2021-11-09 12:04:30
【问题描述】:

我们的插件已设置 triggers (ScriptApp.newTrigger('myFunction')) 以识别任何日历更改,以便我们将会议数据(标题、参与者电子邮件、开始和结束日期等)更新回我们的数据库. 我们面临的挑战是,如果参与者接受/拒绝/取消单个会议或系列、系列的一部分等,我们会收到通知,并且calendar event object 没有任何对象来识别它是由于参与者引起的触发器活动,在这种情况下,我们不需要执行任何操作。

解释一个案例-

  1. 组织者为 4 个实例安排一个系列,其中包括 2 个 参与者。
  2. 一位参与者取消了最后两个活动的会议。
  3. 我们收到的事件无法识别其操作来自 参与者并最终更新。会议取消。 (理想情况下我们 只有在主办方取消时才会触发)。

事件中有一些对象可以识别其组织者还是参与者,但这些对象总是返回“self:true”。

"creator":{
      "self":true,
      "email":"dev@******.com"
   },
   "organizer":{
      "self":true,
      "email":"dev@******.com"
   }, 

我们有什么方法可以限制只在组织者更新日历时接收通知?

有什么方法可以从calendar event object 中确定此触发器是由参与者的操作引起的?

【问题讨论】:

    标签: google-apps-script google-api


    【解决方案1】:

    我了解您只想在触发触发器的用户是活动组织者时才运行触发器。有一个属性可以帮助您轻松管理该操作:attendee 对象的organizer 属性,位于事件对象内。如果与会者是此活动的组织者,则该属性将包含 true,否则将包含 false。因此,您只需在脚本中包含一行代码即可检查该属性并仅在等于true 时才继续运行。

    【讨论】:

    • 感谢@jacques 的回复,但是当我收到以下事件对象时,其中一位参与者接受了邀请,如下所示。我无法确定它是参与者的行为,因为我总是让他的电子邮件的组织者属性为真,即使它也被参与者接受。 “参加者”:[{“电子邮件”:“dev@something.com”,“responseStatus”:“接受”,“组织者”:true,“self”:true},{“displayName”:“Siva”,“responseStatus ":"接受", "电子邮件":"sivashankar@somthing.com" }
    猜你喜欢
    • 2012-12-17
    • 2020-07-09
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多