Skip to content

Instantly share code, notes, and snippets.

@nrm176
Last active August 25, 2020 07:34
Show Gist options
  • Save nrm176/f3281e0a0151f211d59824ea2f3e27c6 to your computer and use it in GitHub Desktop.
Save nrm176/f3281e0a0151f211d59824ea2f3e27c6 to your computer and use it in GitHub Desktop.
function setUpTrigger(){
ScriptApp.newTrigger('submit').forForm('Your Google Form ID').onFormSubmit().create();
}
function submit(event) {
var itemResponses = event.response.getItemResponses();
var order = '';
var firstName = '';
var lastName = '';
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var type = itemResponse.getItem().getType();
var answer = itemResponse.getResponse();
if (question === 'お名前(姓)をご入力ください'){
lastName = answer;
}
else if (question === 'お名前(名)をご入力ください') {
firstName = answer;
}
if(type == 'GRID'){ // typeはEnumのため比較演算子を使う
var rows = itemResponse.getItem().asGridItem().getRows();
for(var j = 0; j < rows.length; j++){
var titleRow = rows[j];
var answerCol = answer[j];
order += titleRow + ' : ' + answerCol + '\n';
}
}
}
var message = order
message += '名前: ' + lastName + firstName + JSON.stringify(getItemSummary(event));
notifySlack({ message: message })
}
// 回答したフォームに配置されているアイテム全てをオブジェクトに変換する
function getItemSummary(event) {
var items = event.source.getItems();
var sourceSummary = [];
for (var i = 0; i < items.length; i++) {
var item = items[i]
var title = item.getTitle();
var type = item.getType() + '';
var helpText = item.getHelpText();
var summary = {
title: title,
type: type,
helpText: helpText,
}
sourceSummary.push(summary)
}
return sourceSummary
}
function notifySlack(opt) {
var WEBHOOK_URL = ''; // Slackで取得したweb hook url
var options = opt || {}
var jsonData = {
"username": options.botName || '通知',
"text": options.message || "送信テスト",
"icon_emoji": options.botIcon || ':bird:'
};
var payload = JSON.stringify(jsonData);
UrlFetchApp.fetch(WEBHOOK_URL, {"method": "post", "payload": payload});
}
// Useful Links
// https://www.youtube.com/watch?v=vYQE9ltt2Yg
// https://qiita.com/harhogefoo/items/6b20ed9e6779c3d4c48d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment