【问题标题】:Attempting to make a POST call from a Google App Script尝试从 Google 应用脚本发出 POST 调用
【发布时间】:2019-06-21 21:44:28
【问题描述】:

我正在尝试将 POST 调用作为 webhook 触发,以使用 Google 应用脚本从 Google 表格触发外部系统中的工作流

逻辑很好,我已经测试过,当编辑第 6 列中的单元格时,脚本会按我的意愿触发。问题是我无法发送对我的 webhook URL 的调用

在下面的代码中,我将它带回到谷歌在他们的文档中的示例,只是为了在添加我真正想要的数据之前尝试让它工作。任何指针将不胜感激。这将是一件愚蠢的事情……我已经看得太久了,已经挖掘了太多资源。

  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;
  }
}

【问题讨论】:

  • 关于I cannot get the call to my webhook URL to be sent,可以问一下UrlFetchApp.fetch()运行时的错误信息吗?另外我可以问你关于 webhook 的规范吗?
  • @Tanaike 哇。这是我第一次使用 Google Scripts,我一直在寻找错误但找不到它们!我进行了搜索,现在我知道在哪里可以买到它们!错误是:“您无权调用 UrlFetchApp.fetch。所需权限:googleapis.com/auth/script.external_request at onEdit(cellListen:19)” 目前我只是想在 webhook.site URL 上捕获触发器,但对于我的集成,我将使用 Cloud Elements 捕获它,以便在形成对另一个平台的 API 调用之前操作数据并添加其他数据。
  • 感谢您的回复。如果您通过 OnEdit 事件触发器运行脚本,那么使用可安装触发器怎么样? developers.google.com/apps-script/guides/triggers/installable我认为当你的情况使用简单触发器时,可能会出现这样的错误。
  • 太棒了!我添加了一个可安装的触发器并成功了!非常感谢!
  • @Tanaike 当然!我认为您发表了评论而不是回答,因此我无法将其作为正确答案进行检查。如果您留下答案,我会将其标记为已解决。谢谢!

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


【解决方案1】:

问题:

当脚本被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'sUrlFetchApp.fetch()`的OnEdit事件触发运行时。

解决办法:

为避免此错误,请使用可安装触发器。使用可安装触发器时,请将函数名称从onEdit()修改为其他名称,如sample()。这样可以防止脚本运行2次。

注意:

  • 在您的情况下,如果 onEdit() 安装为 OnEdit 触发器的可安装触发器,则作为简单触发器运行的 onEdit() 在您的问题中会出现错误。然后,onEdit() 在可安装触发器工作时运行。所以看起来脚本运行了 1 次。

参考资料:

【讨论】:

    猜你喜欢
    • 2017-12-08
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    相关资源
    最近更新 更多