在我的第一部个人实用应用程序的最后一段,我似乎无法获得最后一篇。
以下是我的代码,它将用户添加到特定的日历活动中。 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请求,并且在过去的几天里也尝试过这个,我只是感到困惑。如果有人有建议让这项工作需要在这里完成,那也很酷。
谢谢!
答案 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中的其他说明。希望有所帮助!