我们的目标是每当编辑日历时,将数据从Google日历传输到Google Sheet。为此,我们需要一个传输数据的脚本,并需要设置日历的触发器。
感谢Oleg Valter和他的出色和详尽的解释如何创建这个页面上的脚本。
当脚本从Google表上启动时,数据传输已经可以正常工作了。我使用的是Oleg脚本的修改版,效果很好,我不知道在这里重新发布是否有意义(因为这不是问题所在)。
我试着先用Oleg的函数来创建触发器。
/**
* Installs Calendar trigger;
*/
function calendarTrigger() {
var trigger = ScriptApp.newTrigger('callback name here')
.forUserCalendar('calendar owners email here')
.onEventUpdated()
.create();
}
但当我在日历上添加一个新事件时,触发器并没有启动。检查了连接到项目的触发器,上述函数创建的触发器在那里。检查了执行,没有任何显示。
然后我手动删除了触发器,并按照下面的说明手动创建了一个新的触发器。"手动管理触发器" 本页的部分。
https:/developers.google.comapps-scriptguidestriggersinstallable#google_apps_triggers。
又创建了一个触发器,和上面功能创建的触发器基本一样,但是测试的时候还是没有发射。
现在我被卡住了,不知道还能试什么。应该是可以的,但是有可能我漏掉了一些其他的设置,可能是这个工作所需要的。
我使用的是一个简单的谷歌帐户连接到一个单一的电子邮件地址(不是一个商业套件)。之前从未遇到过任何与单子相关的其他触发器的问题,我无法解决(有时平台拒绝按照它应该的方式工作,但后来事情又恢复正常)。
我非常感谢任何关于其他尝试的建议,或者如果你知道问题所在,那就更好了。
先谢谢您了。
佐尔坦
对于 "[email protected] "的日历,它不工作。
好吧,在根据ziganotschka的好心回答(再次感谢)试错后,发现了问题。它是由一个有点混乱的关于什么是
.forUserCalendar('日历所有者的电子邮件在这里') 和
日历ID 应该是。
在我的日历账户上,有好几个日历,但有两个是我们这里感兴趣的。
1) "主日历" 这是与该帐户相关联的默认日历。如果其他所有的东西都被删除了,那么这个日历就会保留下来。
2)我添加的另一个日历,目的就是为了连接到电子表格,并将其命名为 "自动计费" 只有这个被选中并显示)。
的 主日历 有这个 设置 页面(修改了我的邮箱地址)。
整合日历
日历ID
该 自动计费 日历上有这个设置 页面(更改了ID)。
整合日历
日历ID
我的目的是使用自定义创建的日历,而不是使用默认的日历。主日历因为这可能充满了各种事件。
因此,当手动创建触发器时
应在""字段中添加日历所有者的电子邮件"而不是日历所有者的电子邮件地址。
当使用上述代码段从脚本中创建触发器时,那么
.forUserCalendar("[email protected]")
应该被使用。
在将数据从日历传输到工作表的脚本中,应该使用
var Calendar = CalendarApp.getCalendarById("[email protected]");
应该使用。这样一来,当事件在 自动计费 日历。
感谢Ziganotschka的指导,也非常感谢Oleg的原稿。希望这次调试也能帮助到其他人。