2016-02-11 81 views
0

使用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腳本通話是否完成?請添加更多信息。 –

回答

0

我建議創建一個測試函數來檢查應用程序的腳本部分對自己是這樣的:

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

,並期待在記錄器,看看它是否工作。