我仍在研究 Google 表格如何触发 slack 通知的许多方法。 我已经成功地让脚本触发了对 Webhook 的通知。
我似乎无法将我的脚本转换为基于带有 onEdit 触发器的列表发送 DM。
抱歉,我对其工作原理的了解非常有限。我希望得到帮助并对我的脚本进行如下调整。
以及我努力调整的脚本。但这是行不通的。 :-(
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 个脚本。
我需要它做的功能是:
我实际上已经成功地使脚本发挥作用了。我现在正在努力替换每个编辑的电子邮件地址 - 将其替换为他们的 slack ID。因此,一旦客户在退款选项卡的第 5 列上打勾,他们就会得到一个宽松的 dm。希望这可以成为任何人的参考。