在Google表格中将任务标记为已完成时向Slack发送消息

时间:2018-01-28 16:29:03

标签: google-sheets google-sheets-api slack slack-api

我创建了一个机器人,只要在特定的Slack频道中发布消息,它就会自动更新Google表格。

现在,只要在电子表格中将任务标记为已完成,我就会向Slack发送一条消息。

我想在特定列中运行一个循环来检查每个编辑,如果该列中任何单元格的值已更改为“已完成”并将该行中的文本发送给Slack。

我无法解决的问题是如何检查特定邮件过去是否已被标记为“已完成”,并且不会将该邮件发送到松弛状态。

有什么建议吗?

    var SLACK_WEBHOOK_URL= "";

function pushToSlack() {
  var ss    = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  var data  = sheet.getDataRange().getValues();
  data.splice(parseInt(0), 1);  // remove the first header row
  for (var i in data) {
    var indicator = data[i][1];
    var update  = data[i][2];
    var ongoing    = data[i][6];
    if (!ongoing) { continue; } 
    sendToSlack(indicator,update,ongoing);
  }
}

function sendToSlack(indicator,update,ongoing) {

  var payload = {
    "text" : ":update_" + indicator + ": ISSUE RESOLVED:" + update 
  };
  var options =  {
    "method" : "post",
    "contentType" : "application/json",
    "payload" : JSON.stringify(payload)
  };
  // push to slack channel 
  return UrlFetchApp.fetch(SLACK_WEBHOOK_URL, options);
}

1 个答案:

答案 0 :(得分:0)

您需要某种簿记,了解哪些已完成的消息已经发送回Slack。解决此问题的一种方法是使用Google工作表中的隐藏(和受保护)列来标记已发送的邮件。