Google apps script 获取异常:使用getFileById时出现无效ID错误
我正在尝试使用一个在线教程中的脚本,该脚本将把URL放在google表单响应表中,这样我就可以在提交响应后返回并编辑它们 剧本是这个人写的 他的指示如下: 以下是教程中的脚本:Google apps script 获取异常:使用getFileById时出现无效ID错误,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在尝试使用一个在线教程中的脚本,该脚本将把URL放在google表单响应表中,这样我就可以在提交响应后返回并编辑它们 剧本是这个人写的 他的指示如下: 以下是教程中的脚本: function assignEditUrls() { var form = FormApp.openById('Your form ke goes here'); var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Your re
function assignEditUrls() {
var form = FormApp.openById('Your form ke goes here');
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Your responses Google Sheet name goes here - The tab name, not the file name');
var data = sheet.getDataRange().getValues();
var urlCol = Column number where URLs get entered goes here;
var responses = form.getResponses();
var timestamps = [], urls = [], resultUrls = [];
for (var i = 0; i < responses.length; i++) {
timestamps.push(responses[i].getTimestamp().setMilliseconds(0));
urls.push(responses[i].getEditResponseUrl());
}
for (var j = 1; j < data.length; j++) {
resultUrls.push([data[j][0]?urls[timestamps.indexOf(data[j][0].setMilliseconds(0))]:'']);
}
sheet.getRange(2, urlCol, resultUrls.length).setValues(resultUrls);
}
(其中….是更多的文档密钥。出于安全原因,我不会将全部内容放在文档中)
根据本教程和所有其他相关研究,这一部分似乎是URL中要使用的正确部分
1pKmad.....VtT3GaM
但这就是导致错误的原因。
我尝试了整个URL,URL只到doc键部分,还有其他一些子集,但都不起作用
有人知道我做错了什么吗?问题: 根据您的描述,您正试图通过
id
访问电子表格文件,但您使用的是FormApp
您应该改用SpreadsheetApp
:
var form=SpreadsheetApp.openById('1pKmad…..VtT3GaM');//表单现在是电子表格对象
但现在的新问题是,变量不再是form
,而是电子表格
对象,因此在调用form.getResponses()
时会出现其他错误
解决方案:
您需要使用现有脚本,将表单的id
而不是电子表格的id
,电子表格可以在表单的url上找到:
var form=FormApp.openById(“此处的表单ID不是电子表格ID”)代码>
注意:
表单url
如下所示:
https://docs.google.com/forms/d/formID/edit
您可以通过电子表格文件菜单找到附加到电子表格文件的表格:
啊哈,事情并不像看上去那么复杂。我必须使用表单中的ID,而不是登录电子表格。还需要在编辑模式下使用表单,而不是公共表单的ID。我根本不需要从FormApp更改为SpreadsheetApp就可以实现这一目标work@Mastercore如果通过点击答案左边的嘀嗒按钮来解决问题,请考虑接受答案。
1pKmad.....VtT3GaM