使用Kodular读取.csv文件上传到Google Spreadsheet时报错如何解决
报错原因排查与解决方案
核心报错原因
- Post请求体格式与App Script解析逻辑不匹配:你当前的App Script代码默认将请求体解析为JSON格式,但Kodular块上传的是CSV原始文本,
JSON.parse执行失败直接抛出异常 - Web App部署权限错误:脚本部署时未开放匿名访问权限,外部请求被Google拦截
- 代码更新未同步部署:修改App Script代码后未重新部署新版本,线上依然运行旧版本代码
- 请求地址错误:使用了脚本编辑页地址而非部署生成的Web App专用地址
可行解决步骤
- 替换App Script代码,直接适配CSV内容解析,无需提前转JSON,同时优化写入效率避免超时,代码如下:
function doPost(e) { try { var csvContent = e.postData.contents; // 直接用Google内置工具解析CSV文本为二维数组 var data = Utilities.parseCsv(csvContent); var ss = SpreadsheetApp.getActive(); var sh = ss.getSheetByName('Sheet1'); // 批量写入替代循环appendRow,性能更高 sh.getRange(sh.getLastRow() + 1, 1, data.length, data[0].length).setValues(data); return ContentService.createTextOutput("Success"); } catch (err) { // 打印错误日志,可在App Script的「执行」 tab 查看具体报错信息 console.error(err); return ContentService.createTextOutput("Error: " + err.message); } }
- 重新部署Web App,配置要求如下:
- 执行身份选择:我(你的谷歌账号邮箱)
- 有权访问的人员选择:任何人,甚至匿名用户
- 部署完成后复制生成的新Web App URL,替换Kodular块中的请求地址
- 调整Kodular请求配置:
- Post请求的Content-Type设置为
text/csv - 确保上传的Post内容为读取到的CSV原始文本,不需要额外转JSON格式
- 验证测试:发送测试请求,若依然报错可前往App Script的「执行」页面查看具体错误日志,定位剩余问题
内容的提问来源于stack exchange,提问作者ehsan
相关产品推荐
相关产品推荐

