【发布时间】:2016-09-02 18:49:22
【问题描述】:
我正在尝试使用绑定到表单的脚本,使用 onFormSubmit() 触发器从 google 表单收集响应详细信息。
大多数情况下,收到的详细信息都没有错误,但有时我会收到错误。收到触发器,但没有数据传递给脚本。谷歌表单控制台收到响应,但未转发到脚本。
接收数据的代码:
function onFormSubmit(e)
{
Logger.log("A response has been received!");
Logger.log(e);
var resp = e.response.getItemResponses(); //capturing trigger event output
var form = e.source;
......
出错时的执行记录:
[16-09-27 07:29:15:073 PDT] Starting execution
[16-09-27 07:29:15:096 PDT] Logger.log([A response has been received!, []]) [0 seconds]
[16-09-27 07:29:15:097 PDT] Logger.log([{authMode=FULL, triggerUid=xxxxxxx41}, []]) [0 seconds]
[16-09-27 07:29:15:099 PDT] Execution failed: TypeError: Cannot call method "getItemResponses" of undefined. (line 18, file "Code") [0.002 seconds total runtime]
到目前为止,我已经通过复制表单并重新设置所有权限来纠正它。但我想要一个不会让我再次这样做的解决方案。现在是我的第 10 次重复 :(
当我成功收到回复时,e 也有一个回复密钥。
【问题讨论】:
-
您是否验证了用户提供了回复?
-
是的。响应会记录在相应表单的 Google 表单仪表板中。
-
你能告诉我们你的代码吗?
-
您是否尝试将代码移动到接收表单数据并在那里运行触发器的电子表格中?我在那里的触发器没有问题。在使用新的表格和表格后,我还没有听说有人在使用表格时遇到问题。
-
@Fralec 抱歉,我无法显示其余代码,但它涉及使用许多其他 Google 应用程序 - 云端硬盘、表格、日历、联系人和一些高级 Google 服务 - 日历 API、管理员等。
标签: javascript google-apps-script google-apps google-forms