来自 Google Sheets 的 OnEdit 触发的列表中的 Slack DM

问题描述 投票:0回答:1

我仍在研究 Google 表格如何触发 slack 通知的许多方法。 我已经成功地让脚本触发了对 Webhook 的通知。

我似乎无法将我的脚本转换为基于带有 onEdit 触发器的列表发送 DM。

抱歉,我对其工作原理的了解非常有限。我希望得到帮助并对我的脚本进行如下调整。

这是我的样本表:https://docs.google.com/spreadsheets/d/1TxrhVeQeN5n1ezz4stQxT206cGDWljHdx_-KWIwRcbc/edit#gid=1896280612

以及我努力调整的脚本。但这是行不通的。 :-(

var POST_MESSAGE_ENDPOINT = "https://slack.com/api/chat.postMessage";
var TOKEN = "my_token_";
var message = "\:heavy_dollar_sign: *Approved* a *refund* request" + "\nEmail:" + "\ncustmer:"

var sh = e.source.getActiveSheet();
var rng = e.source.getActiveRange();
var row = rng.getRow();
var col = 5
var custmer = e.source.getActiveSheet().getRange(row, 4, 1, 1).getValue(); 
var user = e.source.getActiveSheet().getRange(row, 9, 1, 1).getValue().split('.')[0]; 
  
function onSpeEdit(e) {  // refund approval notif - 

if (rng.getColumn() == col && sh.getName() === "Customer_Refund_Requests" 
 //&& e.user != "[email protected]"
 && e.user != "[email protected]" )

 postToSlack(message);
}

function postLoop () {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Input")
 var rangeValues = sheet.getDataRange().getValues();

  for (i=1;i<rangeValues.length;i++){
    var channel = ''+rangeValues[i];
    postToSlack(channel)
  }
}

function postToSlack(channel) {

  var payload = {
    "text": message,
    "channel": channel
  };
  var params = {
             "method": "post",
             "payload": payload, 
             "headers": {
                        "Authorization": "Bearer " + TOKEN
                        }
           };
  var response = UrlFetchApp.fetch(POST_MESSAGE_ENDPOINT, params);
}; 

我更希望我的 Slack 机器人能够在其他用户看到通知的情况下工作,并且每次对话中也不会出现“我自己”。

我确实有一个工作脚本,但在网络钩子上运行和触发。这是我尝试让我的 Slack Bot - 从 Google 表格上的 OnEdit 触发的列表中向用户发送直接消息。我尝试结合我之前使用的 2 个脚本。

我需要它做的功能是:

  1. 根据用户列(第一列)获取用户列表 - 即电子邮件地址
  2. 将 I 列电子邮件地址与用户列表(输入选项卡)相匹配
  3. 当使用 onEdit 触发器勾选第 5 列(E 列)时,向该用户发送 slack DM。
slack slack-api
1个回答
0
投票

我实际上已经成功地使脚本发挥作用了。我现在正在努力替换每个编辑的电子邮件地址 - 将其替换为他们的 slack ID。因此,一旦客户在退款选项卡的第 5 列上打勾,他们就会得到一个宽松的 dm。希望这可以成为任何人的参考。

© www.soinside.com 2019 - 2024. All rights reserved.