Edited at

GASでesaのwebhookを拾ってslackに飛ばそう!


概要

esaでslack連携をした時にメンションがactiveにならなくて困ったのでサクッとGASで作りました。


本編


GASの設定

var slack = {

webhook: '', // Slackのwebhook
}

//esaからのpost
function doPost(e) {
var params = JSON.parse(e.postData.getDataAsString());

// mention分岐
if(params.kind == "comment_mention") {
var slack_post_data = {
"text": params.user.name + "がメンションコメントしました。\n" + params.comment.body_md + "\n" + params.post.url,
"link_names" : 1
};
}else{
var slack_post_data = {
"text": "esaでなにかが起こった、詳細は@dasisyouyuにきいて。"
};
}

var payload = JSON.stringify(slack_post_data);

var options = {
"method" : "post",
"contentType" : "application/json",
"payload" : payload
};

//slack webhookへpost
UrlFetchApp.fetch(slack["webhook"], options);
}


esaの設定

team設定のwebhookからGenericを選択し先程作ったGASのwebhookを設定しよう!


slackの設定

Incoming Webhooksを作成してできたwebhookURLをGASに貼っておく