尝试通过Google App脚本进行POST调用

时间:2019-06-21 21:44:28

标签: post google-apps-script google-sheets httprequest

我正在尝试将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;
  }
}

1 个答案:

答案 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次。

参考文献: