首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试使用onEdit触发器与GScript一起发送一条松弛消息

尝试使用onEdit触发器与GScript一起发送一条松弛消息
EN

Stack Overflow用户
提问于 2022-04-24 14:54:18
回答 2查看 65关注 0票数 0

当我的一些报告通过Gscript上的复选框触发器上传时,我一直试图自动发送消息。(Idea正在报告更新->用户选中复选框->消息被发送到松弛)

到目前为止,我已经能够创建脚本来发送消息,甚至在晚上重新设置我的复选框。我唯一的问题是扳机。

我在我的三个复选框(A1、B1、C1)上使用了A1作为触发器:

代码语言:javascript
运行
复制
function onEdit(e) {
  const as = e.source.getActiveSheet();
  const cell = e.range.getA1Notation();

  if(as.getName() == 'Sheet1' && cell.getRange('A1').ischecked() === true) {
    SendSlackMessage1();
  }
  else if (as.getName() == 'Sheet1' && cell.getRange('B1').ischecked() === true) {
    SendSlackMessage2();
  }
  else if (as.getName() == 'Sheet1' && cell.getRange('C1').ischecked() === true) {
    SendSlackMessage3();
  }}

作为参考,下面是发送消息的函数:

代码语言:javascript
运行
复制
function SendSlackMessage1() {
  const url = "https://hooks.slack.com/services/XXXXXXXXXXXXX";
  const params = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify({
      "text":"Report A has been uploaded"
    })
  }

  const sendMsg = UrlFetchApp.fetch(url, params)
  var respCode = sendMsg.getResponseCode()
  Logger.log(sendMsg)
  Logger.log(respCode)
}

(除了文本(Report A/B/C)之外,所有的SendSlackmessages函数都是相同的,我已经授权这些函数在google上运行。

所以很明显,我做错了什么,但是什么?我的第一个猜测是,我没有正确地定义e范围,但我不知道下一步该做什么。

如果有人能给我一个先发制人的机会或者指点我去哪里看看,我会很感激的。

EN

Stack Overflow用户

发布于 2022-04-24 18:39:26

  1. 简单的触发器onEdit()不能用于执行需要授权的操作。可能一个已安装的触发器变体可以。这可能是问题的原因之一。

  1. ,代码看起来很奇怪。你确定它会起作用吗?

  • 常量cell是一个字符串。因此,您不能这样获得范围:cell.getRange('A1')。也许您想以这种方式更改它的定义(如果您需要常量):

代码语言:javascript
运行
复制
const cell = e.range;

  • cell.getRange('A1')可能应该是:

代码语言:javascript
运行
复制
as.getRange('A1')

  • 和我不确定ischecked()是否能工作。应该是isChecked()

https://developers.google.com/apps-script/reference/spreadsheet/range#ischecked

等等。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71989588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档