当前位置: 首页 > 知识库问答 >
问题:

使用谷歌应用程序脚本响应谷歌日历API的推送通知

汤才捷
2023-03-14

我想使用谷歌应用程序脚本更新谷歌电子表格,并在我拥有的一系列日历发生更改时使用Gmail API发送电子邮件。

Google日历推送通知是否可以与Google App Script一起使用,或者是否需要其他某种平台?

我愿意学习任何必要的东西。我知道需要一个域名来接收通知。

我感谢你的帮助!

共有2个答案

江棋
2023-03-14

如果您熟悉GAS(谷歌应用程序脚本),那么这是一项非常简单的任务,下面的代码只是所需代码的一部分(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);
  }
章茂
2023-03-14

不幸的是,使用Google App Script无法实现这一点(至少在撰写本文时无法实现)。

您可以尝试创建一个Google应用程序脚本(GAS)web应用程序,并将其url用作日历API推送通知的endpoint。但是,日历API发送的推送通知的数据有效负载驻留在自定义HTTP标头中,当前无法从GAS Web App访问这些标头。

有其他解决方案,但它们会将您带离GSuite的生态系统之外,而且它们不太可能是免费的。但如果你在编程技能方面能够胜任这项任务,并且你有能力在一个平台上进行金钱投资,那么你应该看看谷歌云的功能。这是一项付费的基于云的mirco服务,但如果您每月的免费使用配额低于此限额,则实际上是免费的。

 类似资料:
  • 我想使用Google CAL API v3来观看多个日历,从而将这些日历中的所有事件更新到主日历,因此我需要使用WATCH/PUSH通知,以便每当有新事件在这些cal中,这些事件将自动在我的主日历中推送/创建。 但是,我面临以下问题:在API资源管理器下。大多数服务返回200 OK,除了Watch请求不工作。 服务 我收到了以下请求和响应 请求 回应 然后我按照下面的谷歌文档https://dev

  • 接下来,我生成了自己的OAuth2客户机ID并使用它。这种方法很简单,直到我开始收到来自Google的“匿名使用过期”错误,一段时间后我意识到这是因为密钥没有启用只读日历范围。 我的下一个想法是公开日历,并使用静态API密钥,但日历是从一个名为Peak Pro的预订服务中同步的,该服务用参加活动的客户的姓名、电子邮件和电话号码填充日历描述。我不能公开揭露那些。 接下来,我被吸引到了CalDAV A

  • 我想知道我是否需要Google java客户端库才能从GAE访问我的Google日历。默认情况下,它们是Google App Engine SDK的一部分吗? 此外,我找不到一个很好的示例或教程来展示如何从Google Cloud Platform应用程序创建、读取、更新和删除Google日历事件。 非常感谢,如果您可以提供相同的代码示例或链接到适当的工作教程。

  • 在继续使用GoogleApps脚本构建Google电子表格的过程中,我已经完成了获取Bittrex和Poloniex余额的工作,但无法使用Cryptopia。 下面是我与Bittrex将JSON对象数组映射到字符串的斗争的链接 以下是官方API链接:https://www.cryptopia.co.nz/Forum/Thread/256 以下是一些例子: https://www.cryptopia

  • 我想写一个小脚本,告诉Firebase消息推送,如果满足一定条件。如何使用谷歌应用程序脚本从Firebase发送消息推送?

  • 我想同步两个谷歌日历自动每当有一个更新到其中之一。请注意,这两个日历并不相同。我认为设置一个由日历触发的触发器就足够了。但谷歌文档称 这些触发器不会告诉您哪个事件发生了变化或它是如何变化的。相反,它们表示您的代码需要执行增量同步操作,以获取日历的最新更改。 所以我从谷歌找到了一个完全和增量同步的实现 我使用了上面链接中的函数LogSynceEvents()和getRelativeDate(),没有