从Slack Webhook通过Google脚本发送电子邮件
问题描述:
使用Slack,并尝试设置Outgoing Webhook在用户键入某个关键字时发送电子邮件。斯莱克发送POST的格式如下:从Slack Webhook通过Google脚本发送电子邮件
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:
它发出的这个帖子到设置了这个谷歌脚本的URL:
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 = "[email protected]";
var subject = text[0];
var message = text + "Ticket created by Autoslack Bot";
MailApp.sendEmail(email, subject, message);
} else {
return;
}
}
这是发布为Web应用程序,并设置运行作为“任何人,甚至匿名”,并被授予使用我的Google电子邮件的权限。
所以,如果有人键入'atsk:T12345678;用户有问题。'它应该发送一封电子邮件到'[email protected]'的主题'T12345678'和'T12345678';用户有问题。由Autoslack Bot'创建的票据'
我认为这是设置正确,但我无法收到一封电子邮件发送到指定的地址。有人可以帮忙吗?
答
我建议创建一个测试函数来检查应用程序的脚本部分对自己是这样的:
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 = "[email protected]";
var subject = text[0];
var message = text + "Ticket created by Autoslack Bot";
Logger.log('MailApp.sendEmail('+email+', '+subject+', '+message+')');
} else {
return;
}
}
,并期待在记录器,看看它是否工作。
你是否收到任何错误信息?您的Google脚本通话是否完成?请添加更多信息。 –