🔖
googleFormからslackへ通知する
はじめに
googleFormからslackへ通知させたい場合、GASで組むと無料(GWSを契約している場合)で通知できる。
システム構成(おすすめ)
準備
1. googleFormとspreadsheetを連携
参考
2. slackでwebhookを発行
以前主流であったincoming webhookが非推奨となっており、以下のどちらかで通知させることになる。
方法 | メリット | デメリット |
---|---|---|
ワークフローを使用 | ①通知先チャンネルやアイコンをワークフローの設定で変えられる,②設定が手軽 | ①リンクを付けることができない②通知チャンネル先を動的に動かすことができない |
Slack Appを作成 | リンクや装飾をつけることができる | 設定が手間 |
おすすめはslackワークフローを使用する方。
ワークフロー設定例。
発行したwebhookをコピーしておく。
3. プログラミング
参考
main.js
function submitForm(e) {
const f = new Form(e);
slackChannel(
'webhookをここにペーストする',
f.getSlackText()
);
}
function slackChannel(webhook, message) {
const jsonData = {
'text' : message
};
const options = {
'method' : 'post',
'contentType' : 'application/json',
'payload' : JSON.stringify(jsonData)
};
UrlFetchApp.fetch(webhook, options);
}
class/Form.js
class Form {
constructor(e) {
// googleFormの質問文をコピーして以下にペーストする
this.text = [
'質問1',
'質問2'
].map(title => {
return `\n## ${title}\n${e.namedValues[title]}\n`;
}).join('\n');
}
getSlackText(){
return this.text;
}
}
Discussion