当前位置: 首页 > 知识库问答 >
问题:

如何在Google Sheets中获取IFTTT操作以触发脚本?

杜元明
2023-03-14

我有一个IFTTT小程序,它将在我的google工作表中更新单元格C65。我希望在更改单元格C65时,该工作表运行函数submitData()。然而,正如许多人所知,onEdit和onChange函数不会从IFTTT操作触发,只能从手动输入触发。

我从寻找答案中学到了这一点,似乎没有人能够解释解决方法。最奇怪的是,当我今天第一次把它组装起来的时候,它实际上工作得非常好。然后我交换了谷歌账户,做了其他与代码或IFTTT小程序无关的更改,突然它完全停止了工作,甚至在切换回正确的谷歌账户时也是如此。

这是适用于屏幕输入的onEdit代码,但在我的IFTTT向单元格中输入值时不起作用:

function onEdit(e){
  var cellAddress,cellAddressToTestFor;

  cellAddressToTestFor = 'C65';

  // Get cell edited - If it's C65 then do something
  cellAddress = e.range.getA1Notation();
  Logger.log('cellAddress: ' + cellAddress);

  if (cellAddress === cellAddressToTestFor) {
    //To Do - Code here if cell edited is correct
    submitData();
  };
}

有没有办法让IFTTT事件触发my submitData函数?

共有1个答案

乐正焕
2023-03-14

因此,“编辑时”触发器不会与IFTTT更改一起使用,但“更改时”可安装触发器会。但是,On Change触发器传递的事件对象不包含“范围”,因此无法轻松检查已编辑单元格的位置。为此:

function onChange(e){
  var cellAddress,cellAddressToTestFor;
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeSheet = ss.getActiveSheet();
  var activeSheetName = activeSheet.getSheetName();

  cellAddressToTestFor = 'C65';

  // Get cell edited - If it's C65 then do something
  cellAddress = activeSheet.getActiveRange().getA1Notation();
  Logger.log('cellAddress: ' + cellAddress);

  if (cellAddress === cellAddressToTestFor) {
    //To Do - Code here if cell edited is correct
    submitData();
  };
}
 类似资料:
  • 问题内容: 我有一个包含URL和代表其参数的字符串的表。问题是我希望url和parameterstring是表的唯一约束-aka没有条目可以具有相同的url AND parameter string。参数字符串可以是任意长度(长于800bytes左右,这是MySql键的最大长度,因此我不能使用Unique(url,params),因为它会引发错误…)。 我曾考虑过使用触发器来执行此操作,但是如果触

  • 问题内容: 据我了解,当您调用last_insert_id()时,它是通过连接进行的,因此您将获得插入到调用last_insert_id()的同一连接中的最后一行的ID,对吗? 那么,如果我在“ AFTER INSERT”触发器中调用last_insert_id()怎么办? 我想做的基本上是这样 “ anothertable”中的id与“ sometable”中的id非常重要,这是否可行?还是应该

  • 我有一个用Java/selenium构建的自动化脚本。我想通过触发脚本从VST运行测试用例,还想在VST中获得结果。谁能给我一条路我怎样才能做到。还有,我应该把项目放在哪里? 我在做研究。但对我来说没有意义https://docs.microsoft.com/en-us/azure/devops/pipelines/test/continuous-test-selenium?view=azure-

  • 问题内容: 我的android应用程序功能的一部分是放置我在init.d中编写的脚本,这样它将在每次启动时执行。(显然,我的应用仅适用于root用户) 这是我在做什么: 我遇到麻烦的地方是“ update-rc.d脚本99”行,失败的原因是“找不到update-rc.d”错误。 有谁知道正确的命令是什么才能使它在Android中工作? 我意识到这并不是发布此问题的最合适地点,但是我已经意识到该社区

  • 问题内容: 我有一个UPDATE触发器,它产生如下的INSERTED和DELETED表: 插入式 已删除 我想将此更新捕获到日志表中。我的Log表(对于所有表都是全局的)是这样的(然后我必须处理我的INSERTED和DELETED表): 是表的系统object_id,我在其中执行了UPDATE语句,UPDATEd列的主键的值,是我映射到每个表中每个列的自定义ID。仅当通过UPDATE更改列的数据时

  • 问题内容: 我在最新的应用程序中使用react-router和redux,并且遇到了一些与基于当前url参数和查询所要求的状态更改有关的问题。 基本上,我有一个组件,每次URL更改时都需要更新其状态。像这样通过装饰器通过redux通过props传递状态 目前,我正在使用componentWillReceiveProps生命周期方法来响应来自react- router的url更改,因为当this.p