作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理由 Google 表单支持的错误跟踪,但我认为我遇到了 Apps 脚本中的错误。
提交回复后,我的脚本 onFormSubmit
处理程序获取 FormResponse
id(如下面的示例所示):
function onFormSubmit(e) {
log("ID (on submit):", e.response);
}
function log(msg, response) {
Logger.log(msg + " " + response.getId() + "; response is '" + response.getItemResponses()[0].getResponse() + "'");
}
FormResponse
s,我得到了不同的 ID,除了第一个,没错。示例代码如下:
function listResponsesId() {
FormApp.getActiveForm().getResponses().forEach(function(v) {
log("ID (on list):", v);
});
}
function log(msg, response) {
Logger.log(msg + " " + response.getId() + "; response is '" + response.getItemResponses()[0].getResponse() + "'");
}
ID (on submit): ChI2NzM1Mjg5OTY5NjY0MjA5MjEQzI768siy3sSOAQ; response is 'test 1'
ID (on list): ChI2NzM1Mjg5OTY5NjY0MjA5MjEQzI768siy3sSOAQ; response is 'test 1'
ID (on submit): ChMxOTczNzc5Nzk1MDI1MDkzMjMyEMyO-vLIst7EjgE; response is 'test 2'
ID (on list): ChMxOTczNzc5Nzk1MDI1MDkzMjMyEAA; response is 'test 2'
ID (on submit): ChMyNjk1ODgzNjgwMjk2NjM4NzAyEMyO-vLIst7EjgE; response is 'test 3'
ID (on list): ChMyNjk1ODgzNjgwMjk2NjM4NzAyEAA; response is 'test 3'
FormResponse.getId()
应该不靠谱?
最佳答案
我遇到了同样的问题。
虽然我当前的实现依赖于时间戳 - 在不太可能(但仍然可能)在同一秒内提交两个响应的事件中,我的解决方案将失败。
我注意到的一点是,在你上面的例子中,响应 ID 不同,它们仍然共享前 29 个字符。
考虑到这些 ID 的长度和复杂性,我愿意打赌这些 ID 在提交到所有谷歌表单的所有响应中都是全局的,并且找到两个响应的几率在提交到的字符串的开头共享这 29 个字符同一个表格比让两个受访者同时提交表格的可能性要小得多。
因此,仅比较 ID 的第一部分的解决方法可能会成功。
if (idStoredOnFormSubmit.substr(0,29) === idFetchedFromFormResponse.substr(0,29)) {
runThisCode();
};
关于google-apps-script - 当您列出所有 FormResponses 时,提交响应时 FormResponse 的 id 是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509607/
我正在处理由 Google 表单支持的错误跟踪,但我认为我遇到了 Apps 脚本中的错误。 提交回复后,我的脚本 onFormSubmit处理程序获取 FormResponse id(如下面的示例所示
我是一名优秀的程序员,十分优秀!