无法向新客户发送新日历活动通知 - Google Apps

时间:2016-10-17 00:56:05

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

在我的第一部个人实用应用程序的最后一段,我似乎无法获得最后一篇。

以下是我的代码,它将用户添加到特定的日历活动中。 addGuest正在运行 - 当它运行时,它们被添加到该事件中。

然而,他们需要收到一封电子邮件,以便他们确认活动。旧的自动生成的g-cal邀请电子邮件就可以了。

据我所知,这应该有效,但它只会添加访客,测试时不会发送电子邮件:

function assignToCal() {
  var row = scheduled.getLastRow();
  var timePicked = scheduled.getRange(row, 2).getValue();
  var email = scheduled.getRange(row, 3).getValue();
  var calId;

  for(var i = 0; i < slotTimes.length; i++)
  {
    if(slotTimes[i] == timePicked)
    {
      calId = slotIds[i];
    }
  }

  var session = calendar.getEventSeriesById(calId);
  session.addGuest(email);


  function sendInvite(calendar, calId, email) {
    var event = Calendar.Events.get(calendar, calId);
    event.attendees.push({
      email: email
    });
    event = Calendar.Events.patch(event, calendarId, eventId, {
      sendNotifications: true
    });
  }

  Logger.log(timePicked);
  Logger.log(calId);
};

对于客人来说,另一个选项似乎是using this POST request to update sendNotifications。但是,说实话,我从来没有做过http请求,并且在过去的几天里也尝试过这个,我只是感到困惑。如果有人有建议让这项工作需要在这里完成,那也很酷。

谢谢!

1 个答案:

答案 0 :(得分:1)

作为Google Apps脚本问题跟踪器中issue #574中给出的给定解决方案,您还可以尝试使用Advanced Calendar service。如上所述,

  

您可以使用Calendar.Events.patch()添加与会者,如果将可选参数sendNotifications设置为&#34;则为真&#34;与会者将获得邀请。

示例代码实现:

function sendInvite(calendarId, eventId, email) {
  var event = Calendar.Events.get(calendarId, eventId);
  if(event.attendees) {
    event.attendees.push({
      email: email
    });
  } else {
    event.attendees = new Array({email: email});
  }
  event = Calendar.Events.patch(event, calendarId, eventId, {
    sendNotifications: true
  });
}

重要提示:如果您是活动所有者,并且您尝试添加自己的电子邮件地址,则无法收到电子邮件通知。

为了更好地了解如何实现这一点,请另请查看Issue #574中的其他说明。希望有所帮助!

相关问题