调试由发布请求触发的 Google Apps 脚本?

Mil*_*hev 1 google-apps google-apps-script

我在 Google Sheets 中有一个简单的脚本,它由 Slack 中的命令触发,只是将 Slack 消息添加为新行。这是一个非常简单的功能,部署为 Web 应用程序并且可以正常工作:

function doPost(req) {
var sheet = SpreadsheetApp.openById('[My Sheet Id]');
var params = req.parameters;

Logger.log(params.text);

sheet.appendRow(params.text);

return ContentService.createTextOutput("Saved your entry:" + params.text);
}
Run Code Online (Sandbox Code Playgroud)

然而,Logger.log 函数从不在调试日志中记录任何内容。我希望它在这里:

在此处输入图片说明

奇怪的是,执行列表也是空的:

在此处输入图片说明

但是脚本正在被触发并将文本消息附加到 Google 表格中。

所以我想的问题归结为当由发布请求触发时,我如何从脚本(部署为 Web 应用程序)中准确登录,以及如何查看它的执行情况?换句话说,您如何调试此类脚本?

Dim*_*gns 5

doPost(e)远程调用a 时,它会创建一个服务器端会话,您无法通过Logger.log().

但是,有一个替代方案,即。StackDriver 日志记录(可通过 Apps 脚本编辑器菜单访问View -> StackDriver Logging)。

启用 StackDriver 日志记录后,您需要将所有Logger.log()调用替换为console.log().

  • 谢谢!这与您所描述的完全一样。只是一个小观察,在 StackDriver Logging UI 中,日志不会使用刷新按钮刷新。您需要转到脚本“查看”->“StackDriver 日志记录”,再次加载 StackDriver 日志记录 UI 才能查看新日志。 (2认同)