LANG SELRCT

コードを書く場所

2019年5月23日木曜日

Google Formの回答を{ 質問1 : 回答1 , 質問2 : 回答2 }の形で取得したい


このようなフォームを作って


USERNAME@gmail.com
{"Country":"オーストラリア","City":"シドニー"}

のように回答を取得したくて書いたコードです。



コード.gs
function getFormResponse(event) {
  var email = event.response.getRespondentEmail();
  var responseObj = getItemResponseObj(event);
  var json = JSON.stringify(responseObj);
  Logger.log(email);
  Logger.log(json);
}

function getItemResponseObj(event) {
  var itemResponses = event.response.getItemResponses();
  var obj = {};
  for (var i = 0; i < itemResponses.length; i++) {
    var itemResponse = itemResponses[i];
    var question = itemResponse.getItem().getTitle();
    var answer = itemResponse.getResponse();
    obj[question] = answer;
  }
  return obj;
}

意訳
この機能がやること
eventからユーザのEmailを取得する
getItemResponseObjにeventを渡して質問:回答を取得する
取得した質問:回答をJSON形式にする
Emailをログに出す
jsonをログに出す


この機能がやること
eventから質問と回答を取得する
空のオブジェクトを作る
質問:回答の数だけ繰り返す
質問:回答を一つずつ取得して
質問のタイトルを取得して
その回答を取得して
objに質問 : 回答 の形で追加していく

出来上がったobjを返す




実行結果