このようなフォームを作って
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を返す |
実行結果