使用Slack,并尝试设置外发Webhook,以便在用户输入特定关键字时发送电子邮件。 Slack以下列格式发送POST:
token=XXXXXXXXXXXXXXXXXX
team_id=T0001
team_domain=example
channel_id=C2147483705
channel_name=test
timestamp=1355517523.000005
user_id=U2147483697
user_name=Steve
text=atsk: ticket#; ticket details
trigger_word=atsk:
它将此POST发送到使用此Google脚本设置的网址:
function autoMail(sendmail) {
var params = sendmail.parameters;
if (params.token == "XXXXXXXXXXXXXXXXXX") {
var textRaw = String(params.text).replace(/^\s*atsk\s*:*\s*/gi,'');
var text = textRaw.split(/\s*;\s*/g);
var email = "example@gmail.com";
var subject = text[0];
var message = text + "Ticket created by Autoslack Bot";
MailApp.sendEmail(email, subject, message);
} else {
return;
}
}
哪个版本是作为Web应用程序发布的,并且设置为'任何人,甚至是匿名的'并被授予使用我的Google电子邮件的权限。
所以,如果有人输入' atsk:T12345678;用户有问题。'它应该发送电子邮件给' example@gmail.com'与主题' T12345678'和消息' T12345678;用户有问题。车票由Autoslack Bot'
创建我认为这是正确设置的,但我无法收到要发送到指定地址的电子邮件。有人可以帮忙吗?
答案 0 :(得分:0)
我建议创建一个测试函数来自行检查Apps脚本部分:
function testAutoMail() {
var parameters={};
parameters['text']='atsk: T12345678; User has an issue.';
parameters['token']="XXXXXXXXXXXXXXXXXX";
var arg = {};
arg['parameters']=parameters;
autoMail(arg);
}
function autoMail(sendmail) {
var params = sendmail.parameters;
if (params.token == "XXXXXXXXXXXXXXXXXX") {
var textRaw = String(params.text).replace(/^\s*atsk\s*:*\s*/gi,'');
var text = textRaw.split(/\s*;\s*/g);
var email = "example@gmail.com";
var subject = text[0];
var message = text + "Ticket created by Autoslack Bot";
Logger.log('MailApp.sendEmail('+email+', '+subject+', '+message+')');
} else {
return;
}
}
查看Logger以查看它是否有效。