每当我拥有的一系列日历发生更改时,我都想使用Google Apps脚本来更新Google电子表格并使用Gmail API发送电子邮件。
Google日历push notifications是否可以与Google App脚本一起使用,还是需要其他某种平台?
我愿意学习任何必要的知识。我了解必须使用域名才能收到通知。
感谢您的帮助!
答案 0 :(得分:3)
不幸的是,使用Google App Script不可能做到这一点(至少在撰写本文时还不行)。
您可以尝试创建Google Apps Script(GAS)网络应用,并将其网址用作Calendar API推送通知的端点。但是,由Calendar API发送的推送通知的数据有效载荷位于自定义HTTP标头中,而该标头目前无法从GAS Web应用访问。
还有其他解决方案,但它们将带您进入GSuite生态系统之外,而且不太可能免费。但是,如果您要完成编程技能方面的工作,并且有能力在平台上进行金钱投资,则应查看Google Cloud Functions。它是一种基于云的按需付费的微服务,但如果您保持在每月免费使用配额之内,它实际上是免费的。
答案 1 :(得分:0)
如果您熟悉GAS(Google Apps脚本),这是一个非常简单的任务,下面的代码只是所需内容的一部分(event.getLastUpdated是技巧),但是它给出了如何完成操作的想法您需要。我也有这个要求,对我来说很好...
设置带有日历详细信息的电子表格,然后将日历信息发布到其中...
function getCalendars()
{
var cal = CalendarApp.getCalendarsByName(calName)[0]; // loop here with all your Calenders
var events = cal.getEvents( date1, date2 ); // start date & end date
for (var x in events )
{
var event = events[x];
var title = event.getTitle();
var created = event.getDateCreated();
var lastMod = event.getLastUpdated();
var lastRead = getLastModifiedFromSpreadSheet();
var diff= daysDiff(lastMod, read);
if (diff > 0) {putNewDateInSpreadsheet(); doYourStuff;)
}
}
function daysDiff(a, b) { // change to hours or minutes if required
var oneDay = 1000 * 60 * 60 * 24;
return Math.floor(b.getTime() / oneDay) - Math.floor(a.getTime() / oneDay);
}