gpt4 book ai didi

google-apps-script - 当您列出所有 FormResponses 时,提交响应时 FormResponse 的 id 是不同的

转载 作者:行者123 更新时间:2023-12-02 03:37:27 24 4
gpt4 key购买 nike

我正在处理由 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() + "'");
}

我使用此示例应用程序运行了 3 次表单提交,结果如下:
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();
};

substr(0,29) 从索引位置 0 开始的字符串开始处取 29 个字符。

关于google-apps-script - 当您列出所有 FormResponses 时,提交响应时 FormResponse 的 id 是不同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com