この記事は?
ことみん Advent Calendar 2022 4日目の記事です!
Googleフォームに送信された回答をSlackに通知するGASのコードを雑に書きました。誰かの参考になるかもしれません。
フォームの内容
名前とメッセージをテキストで回答出来るフォームを作りました。
GASのコード
Slackに通知するためのWebhook URLを取得しておいてください。
function onOpen(e) {
var itemResponses = e.response.getItemResponses();
message = "メッセージが来たよ!\n";
var itemResponseName = itemResponses[0];
var qName = itemResponseName.getItem().getTitle();
var aName = itemResponseName.getResponse();
message = message + qName + "\n";
message = message + aName + "\n";
message = message + "\n";
var itemResponseOuen = itemResponses[1];
var qOuen = itemResponseOuen.getItem().getTitle();
var aOuen = itemResponseOuen.getResponse();
message = message + qOuen + "\n";
message = message + aOuen + "\n";
sendToSlack(message);
}
// Slackに通知する
function sendToSlack(message) {
const channel = "#hogehoge"; // チャンネル名
const hookURL = "https://hooks.slack.com/services/hogehoge"; // Webhook URL
let jsonData = {
"channel" : channel,
"text" : message
}
let payload = JSON.stringify(jsonData)
let options =
{
"method" : "post",
"contentType" : "application/json",
"payload" : payload
};
UrlFetchApp.fetch(hookURL, options);
}
こんな感じで通知されます
GASのトリガーを設定
イベントの種類を「フォーム送信時」に設定してください。
おわりに
雑なコードですが、SlackAppでWebhook URLを取得しておけばコピペで動くはずです。