我正在尝试将POST调用作为网络挂钩,以使用Google App脚本从Google表格中触发外部系统中的工作流程
逻辑很好,我已经测试了在编辑第6列中的单元格时脚本将按我的意愿触发。问题是我无法收到要发送的Webhook URL的呼叫
在下面的代码中,我将其带回到Google在其文档中使用的示例,以尝试使其在添加所需的数据之前正常工作。任何指针将不胜感激。这将是愚蠢的……我一直在研究它太久了,并投入了太多资源。
var cell = SpreadsheetApp.getActive().getActiveCell();
var row = cell.getRow();
var col = cell.getColumn();
if (col == 6){
var data = {
'name': 'Bob Smith',
'age': 35,
'pets': ['fido', 'fluffy']
};
var options = {
'method' : 'post',
'contentType': 'application/json',
// Convert the JavaScript object to a JSON string.
'payload' : JSON.stringify(data)
};
UrlFetchApp.fetch('https://webhook.site/26d7bc1e-8d40-4249-bbf4-f7360ae26424', options);
}
else {
return;
}
}
答案 0 :(得分:0)
当脚本由onEdit(), this is the simple trigger. In this case, when the methods for requiring to authorize are included in the script, suth error occurs. In your case, it's
UrlFetchApp.fetch()``的OnEdit事件触发器运行时。
为了避免此错误,请使用可安装的触发器。使用可安装触发器时,请将函数名称从onEdit()
修改为其他名称,例如sample()
。这样,可以防止脚本运行两次。
onEdit()
安装为OnEdit触发器的可安装触发器,则以简单触发器运行的onEdit()
会出现问题。然后,onEdit()
作为可安装触发器运行。因此,该脚本似乎运行了1次。onEdit()
作为可安装触发器时,它显示onEdit()
(作为简单触发器运行)和onEdit()
(作为可安装触发器运行)触发器,与异步处理一起运行。