구글시트의 ‘확장 프로그램’ 탭에서 ‘App Script’를 눌러주세요.
새 스크립트를 추가해주세요.
기본 내용을 모두 지운 후, 아래의 코드를 붙여넣어주세요.
function doPost(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
ss.setSpreadsheetTimeZone('Asia/Seoul');
var data = JSON.parse(e.postData.contents);
var formAnswers = data.form_answers;
var submittedAt = new Date(data.form_response.submitted_at);
var responseId = data.form_response.response_id.slice(0,10);
if (sheet.getLastRow() === 0) {
var fieldLabels = formAnswers.map(function(answer) {
if (answer.type === 'RADIO_GRID' || answer.type === 'CHECKBOX_GRID') {
return answer.response.map(el => `${answer.label} - ${el.lineLabel}`);
}
return answer.label
}).flat();
var headers = ['Response ID', 'Time Submitted', ...fieldLabels]
sheet.appendRow(headers);
}
var rowData = formAnswers.map(field => {
switch (field.type) {
case 'CHECKBOX':
case 'RADIO': {
var isResponseArray = Array.isArray(field.response);
if (isResponseArray) {
return field.response.filter(el => Boolean(el)).join(', ');
}
return field.response || '';
}
case 'CHECKBOX_GRID':
case 'RADIO_GRID': {
var isLineResponseArray = Array.isArray(field.response.lineResponse)
return field.response.map(el => {
if (isLineResponseArray) {
return el.lineResponse.filter(el => Boolean(el)).join(', ');
}
return el.lineResponse || '';
})
}
case 'GEOLOCATION': {
var response = field.response || {};
var responseArray = Object.entries(response).map(el => `${el[0]}: ${el[1]}`);
return responseArray.join(', ');
}
case 'HIDDEN': {
return field.response === undefined || field.response === null
? ''
: field.response;
}
default: {
var response =
field.response === undefined || field.response === null ? '' : field.response;
if (Array.isArray(response)) {
return response.join(', ');
}
return response;
}
}
}).flat();
sheet.appendRow([responseId, submittedAt, ...rowData]);
return ContentService.createTextOutput(JSON.stringify({result: "success"})).setMimeType(ContentService.MimeType.JSON);
}
‘새 배포’를 눌러주세요.
유형은 ‘웹 앱’, 액세스 권한이 있는 사용자는 ‘모든 사용자’로 설정해주세요.
액세스를 승인해주세요.
‘URL’을 복사해주세요.
왈라의 ‘연동하기’ 탭에서 ‘웹훅 관리’ 버튼을 눌러주세요.
URL을 붙여넣고 웹훅을 추가해주세요.
변경 사항을 저장한 후, ‘웹훅 설정’에서 활성화 해주세요.
응답이 도착하면 구글시트에 응답 내용이 기록돼요.