You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script的doGet/doPost无法捕获第三方服务器请求排查

排查Google Apps Script无法捕获服务器请求的问题

1. 检查部署权限与版本

  • 部署Web应用时,必须将权限设置为任何人,甚至匿名,否则服务器的匿名请求会被拦截,无法触发doGet/doPost。
  • 每次修改脚本后,必须点击“部署>管理部署>编辑>新版本”重新发布,旧版本的URL不会同步脚本修改。

2. 修复脚本的潜在问题

你的脚本存在两个核心问题:一是未返回响应,服务器可能判定请求失败;二是doPost中直接访问e.postData.contents可能因请求格式问题报错终止,导致日志无法记录。修改后的脚本如下:

function doGet(e) {
  // 记录完整请求对象
  Logger.log(JSON.stringify(e));
  Logger.log("当前脚本URL: " + ScriptApp.getService().getUrl());
  // 必须返回响应,否则请求会被视为失败
  return ContentService.createTextOutput("GET请求已接收");
}

function doPost(e) {
  // 优先记录完整请求上下文,避免局部报错导致日志丢失
  Logger.log("完整POST请求对象: " + JSON.stringify(e));
  
  if (e.postData) {
    Logger.log("POST内容: " + e.postData.contents);
  }
  Logger.log("请求参数: " + JSON.stringify(e.parameters));
  Logger.log("当前脚本URL: " + ScriptApp.getService().getUrl());
  
  // 返回响应,告知服务器请求已处理
  return ContentService.createTextOutput("POST请求已接收");
}

3. 验证请求的有效性

  • 在服务器端添加日志,记录发送请求的状态码(如403、404)和返回内容,确认请求是否真的到达了GAS脚本。
  • 手动测试:用浏览器访问脚本URL测试doGet,用curl或Postman发送POST请求测试doPost,比如:
    curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' 你的脚本URL
    

4. 确认日志查看位置

  • 日志需在脚本编辑器>查看>日志中查看,或在Web应用的“管理部署>版本>执行记录”中查看,确保查看的是当前部署版本的日志。

内容的提问来源于stack exchange,提问作者עדוא טייב

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 06:06:01