我创建了一个机器人,只要在特定的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);
}
答案 0 :(得分:0)
您需要某种簿记,了解哪些已完成的消息已经发送回Slack。解决此问题的一种方法是使用Google工作表中的隐藏(和受保护)列来标记已发送的邮件。