首页 > 解决方案 > 谷歌应用脚​​本从电子表格值构造 URL 并执行它

问题描述

我基本上是在电子表格上创建一个 CRM,该电子表格由谷歌表单填充。每次有新条目时,我想通过调用回发 URL 来通知外部服务器。因此必须从新条目(最后一行)的电子表格单元格中获取 URL 参数,然后执行。像这样的东西: http://www.myserver.com/script.php?value1=[lastrow.cell1]&value2=[lastrow.cell2] ....

然后我需要调用 URL。

你会如何编码?

我猜这个脚本可以在电子表格上创建新行时触发。

标签: google-apps-script

解决方案


您可以使用Installable TriggersUrlFetchApp.fetch()自动将表单提交到电子表格,然后向服务器发送包含表单值的 HTTP 请求。

这是您将如何做的一个示例(根据您自己的表格问题调整它):

// Installable trigger function
function formSubmit(e) {

  // Take values from the form submitted
  var channelResp = e.namedValues["Channel"];
  var question1 = e.namedValues["Question 1"];

  // Get values form Parameters sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var parametersSheet = ss.getSheetByName("Parameters");
  var parametersArray = parametersSheet.getRange("A2:B4").getValues();

  try {
     // Verify if the value in channel was well submitted and search for it
     var [channel, variable] = parametersArray.find(element => element[0] == channelResp);
     // Build the params with your form's answers 
     var params = `value1=${question1}&value2=${variable}`;
     // Add the params to your url 
     var url = `http://www.myserver.com/script.php?${params}`;
     // Make the request
     UrlFetchApp.fetch(url);
  } catch(e) {
    // Throw an exception if the value in channel was not well-submitted
    // Or there was an HTTP error
    Logger.log(e);
  }

}

请注意,它e表示Event Object Form Submit。现在,要设置可安装触发器,请执行以下操作:

1) 转到您的 Apps 脚本项目

2)点击编辑->当前项目的触发器

3)点击“+添加触发器”

4) 选择:

  • 选择要运行的函数 ->函数名称

  • 选择事件源-> 从电子表格

  • 选择事件类型 -> 提交表单

5) 点击保存

限制


推荐阅读