调用Google Apps Script接口遇Error 500,求排查解决方案
排查Google Apps Script API调用返回500内部错误的方案
检查脚本部署权限
确认脚本部署时的权限设置:若设置为「仅限我自己」,即使auth token正确,API调用也可能触发内部错误——因为API服务的执行上下文和手动在编辑器运行的上下文存在差异。重新部署脚本时,选择合适的权限范围(比如「任何人,甚至匿名」或「授权用户」),且必须选择「创建新版本」,避免使用草稿版本。排查sendData函数逻辑问题
- 函数中不能包含依赖用户交互的代码,比如
SpreadsheetApp.getUi(),这类代码在API调用的无头环境下执行会直接抛出异常,导致服务端返回500错误。 - 先在Apps Script编辑器中手动运行
sendData函数,确认是否能正常执行、无报错。如果编辑器内运行都失败,问题肯定出在函数逻辑本身。 - 确保函数没有未捕获的异常,即使函数不需要返回值,也要保证执行流程不会抛出未处理的错误。
- 函数中不能包含依赖用户交互的代码,比如
验证请求参数与请求头
- 确认请求的
Content-Type头为application/json,Postman中需手动设置该头,否则服务端无法正确解析请求体,可能返回500错误。 - 检查
devMode参数:虽然你设置为false,但要确保已部署的正式版本中确实存在sendData函数,避免部署版本与草稿版本不一致的情况。
- 确认请求的
查看Apps Script执行日志
打开Apps Script编辑器,点击左侧「执行」面板,查看最近的执行记录。这里会显示API调用时的具体错误信息(比如权限不足、代码异常栈),比API返回的模糊500提示更有排查价值。确认OAuth Token权限范围
确保你的auth token包含正确的权限范围,比如https://www.googleapis.com/auth/script.external_request或对应脚本的访问权限。若token权限不足,也可能触发500内部错误(部分场景下不会返回标准的403错误)。
内容的提问来源于stack exchange,提问作者Yoannis Pérez Guerra
相关产品推荐
相关产品推荐

