Google Apps脚本/工作表返回错误请求400

时间:2016-04-20 11:20:08

标签: google-apps-script google-sheets google-spreadsheet-api

我在Google表格上运行了一个相当简单的脚本。

脚本接受webhook POST并将webhook的内容写为电子表格中的新行。

脚本按预期运行,并在接收数据时写入新行。

但是,我发送webhook的应用程序会收到" Bad Request 400"出于某种原因的错误。即使脚本有效,它也可以完成它应该做的事情。

这是我正在使用的脚本fiddle

如果我手动拨打电话,我会得到200响应:

var response = UrlFetchApp.fetch("https://script.google.com/macros/s/AKfycbx5ubu78yi5sj2D9z-2m3Wqog604wY1ENwP3pZstnB95Mc5_N3b/exec", options);

这是landing page,上面有表格。提交表单时,表单数据会通过webhook推送到Google表格。 (单击"单击我测试此脚本"查看表单,如果提交,您将看到实际工作表。)

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,在重新发送HTTP请求后,我意识到这是因为内容安全策略标头。如果它是由服务器设置的,并且您的来源不满足其规则,则浏览器将显示错误400.

如果UrlFetchApp中有一个选项可以抑制此错误,那就太棒了。

我还没有找到解决问题的方法。如果你这样做,请告诉我。

答案 1 :(得分:0)

您可以通过使用MutlHttpExceptions选项设置为true的UrlFetchApp类的fetch(url, params)方法来解决此问题。以下是发布请求的示例。

var options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(ObjectToSend),
    'muteHttpExceptions':true,
};

var noMancoResponse = UrlFetchApp.fetch('URL', options);
console.log("Status Code: " + String(noMancoResponse.getResponseCode()));

希望这会有所帮助!