从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'创建的票据'

我认为这是设置正确,但我无法收到一封电子邮件发送到指定的地址。有人可以帮忙吗?

+0

你是否收到任何错误信息?您的Google脚本通话是否完成?请添加更多信息。 –

我建议创建一个测试函数来检查应用程序的脚本部分对自己是这样的:

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; 
    } 
} 

,并期待在记录器,看看它是否工作。