求助:Appsheet Bot Webhook无法获取Google App Script Web App的JSON响应
解决Appsheet Bot调用Google Apps Script代理的Webhook解析错误问题
检查Google Apps Script部署权限与链接
- 确保Web应用部署时,访问权限设置为“任何人,甚至匿名”,执行权限可选“我自己”。如果权限受限,Appsheet Bot的请求会被拦截,导致跳转至
script.googleusercontent.com且无法获取有效响应。 - 重新部署脚本,复制生成的
script.google.com/macros/s/xxx/exec链接,替换Appsheet Bot中的配置链接。
- 确保Web应用部署时,访问权限设置为“任何人,甚至匿名”,执行权限可选“我自己”。如果权限受限,Appsheet Bot的请求会被拦截,导致跳转至
严格校验代理返回的JSON格式
- Appsheet对Webhook响应的格式要求极高,必须是无多余字符的纯JSON对象。确保你的
doPost函数返回代码如下:function doPost(e) { // 处理Plate Recognizer的响应,提取plate字段 const plateData = {plate: "提取到的车牌号码"}; return ContentService.createTextOutput(JSON.stringify(plateData)) .setMimeType(ContentService.MimeType.JSON); } - 用curl测试exec链接,确认响应头的
Content-Type为application/json,响应内容仅为{"plate":"xxx"},无任何日志、换行或HTML内容。
- Appsheet对Webhook响应的格式要求极高,必须是无多余字符的纯JSON对象。确保你的
核对Appsheet Bot的配置细节
- 确认Bot的Webhook请求方法为POST,与脚本的
doPost函数匹配。 - 检查响应映射配置:确保Appsheet中设置的字段(如
plate)与代理返回的JSON键名完全一致,注意大小写敏感。
- 确认Bot的Webhook请求方法为POST,与脚本的
添加日志调试请求与响应
- 在脚本中添加日志记录,排查请求是否被正常接收、响应是否正确生成:
function doPost(e) { console.log("Received request payload: " + JSON.stringify(e.postData)); const processedResponse = {plate: "xxx"}; console.log("Generated response: " + JSON.stringify(processedResponse)); return ContentService.createTextOutput(JSON.stringify(processedResponse)) .setMimeType(ContentService.MimeType.JSON); } - 查看Google Apps Script的执行日志,确认是否收到Appsheet Bot的请求,以及响应内容是否符合预期。
- 在脚本中添加日志记录,排查请求是否被正常接收、响应是否正确生成:
关于
script.googleusercontent.com的说明- 该链接是Google Web应用的中转URL,正常情况下访问exec链接会自动跳转至此。若Appsheet调用时出现解析错误,并非链接本身问题,而是权限配置错误或响应格式不符合要求导致的。
内容的提问来源于stack exchange,提问作者Tony Fong
相关产品推荐
相关产品推荐

