Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Sheets API V4和Google应用程序脚本_Api_Google Apps Script_Google Sheets - Fatal编程技术网

Google Sheets API V4和Google应用程序脚本

Google Sheets API V4和Google应用程序脚本,api,google-apps-script,google-sheets,Api,Google Apps Script,Google Sheets,我一直在使用Sheets API v4,以允许授权用户从表单将数据输入电子表格。我想做的是让谷歌应用程序脚本在添加新数据时触发一个函数。我似乎无法使用“编辑”触发器工作 function createSpreadsheetEditTrigger() { var ss = SpreadsheetApp.getActive(); ScriptApp.newTrigger('makeLog') .forSpreadsheet(ss) .onEdit() .c

我一直在使用Sheets API v4,以允许授权用户从表单将数据输入电子表格。我想做的是让谷歌应用程序脚本在添加新数据时触发一个函数。我似乎无法使用“编辑”触发器工作

function createSpreadsheetEditTrigger() {
  var ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger('makeLog')
      .forSpreadsheet(ss)
      .onEdit()
      .create();
}

function makeLog(){
Logger.log("New Entry")
}

可以这样做吗?

下面的示例脚本怎么样?当电子表格由工作表API v4从外部编辑时,
onChange()
成为它的触发器。因此,请将脚本从
onEdit()
更改为
onChange()
。我准备了一个用于测试的示例脚本

当电子表格由工作表API v4编辑时,此示例脚本将发送一封电子邮件。我确认这工作正常。使用此示例时,请输入电子邮件并首先运行
createSpreadsheetEditTrigger()
。这样就安装了触发器。在此之后,按工作表API v4编辑电子表格

当电子表格由Sheet API v4从外部编辑时,我使用了
sendmail()
作为示例,因为脚本编辑器已关闭

示例脚本:

function createSpreadsheetEditTrigger(){
  var ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger('makeLog')
      .forSpreadsheet(ss)
      .onChange()
      .create();
}

function makeLog() {
  MailApp.sendEmail("### Your e-mail address ###", "test mail", "Spreadsheet was edited.");
}

如果我误解了你的问题,我很抱歉。

欢迎并感谢你。如果此问题已解决,请按“接受”按钮作为已解决的问题。其他人也可以使用这个问题和答案。我能再问你一个问题吗?触发器位于服务器上。有没有办法在客户端触发函数?您可以使用Web应用程序使用
newTrigger()
的方法。如果它不是一个web应用呢?如果它从外部客户端执行方法,它会想到web应用和执行api。在安装触发器的情况下,它使用web应用程序。关于这个,因为我已经证实了这一点,不要担心。另一方面,由于限制,无法执行api。