【发布时间】:2020-08-22 17:38:18
【问题描述】:
目标是在编辑日历时将数据从 Google 日历传输到 Google 表格。为此,我们需要一个传输数据的脚本,并且需要设置日历触发器。
感谢 Oleg Valter 以及他对如何在此页面上创建脚本的出色而详尽的解释:
Google calendar events to Google spreadsheet automatic refresh onEdit
当脚本从 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.com/apps-script/guides/triggers/installable#google_apps_triggers
再次创建触发器,看起来和上面函数创建的触发器基本相同,但测试时仍然没有触发。
现在我被卡住了,不知道还能尝试什么。它应该可以工作,但我可能错过了设置其他可能需要它工作的东西。
我正在使用连接到单个电子邮件地址(不是商务套件)的简单 Google 帐户。之前我无法解决与工作表相关的其他触发器的任何问题(有时平台拒绝正常工作,但后来一切恢复正常)。
我非常感谢任何有关尝试其他方法的建议,或者如果您知道问题所在,那就更好了。
提前致谢,
佐尔坦
【问题讨论】:
-
三个问题: 1. 您是您要访问的日历的所有者吗? 2.如何指定
'calendar owners email here'?您是否将电子邮件设置为引号? 3.如何指定'callback name here'?它应该包含要在触发器上运行的函数的名称。 -
1.是的,我是所有者,使用与电子表格相同的电子邮件添加器。 2.是的,使用"字符"myaddress@yahoo.com",3."updateSpreadsheet"这是传输数据的函数的名称,它工作正常。
-
我刚刚添加了一个已安装的 onEdit 触发器来测试它是否工作(尽管项目不需要),它工作正常。但是日历触发器不会触发。
标签: google-apps-script google-sheets google-calendar-api