getItemResponsesが動作しない
Q&A
Closed
GASにおいて、Google スプレッドシートからGoogle Formを作成し、その回答をまたスプレッドシートに書き込むようなコードを書いています。
その中で、Googleスプレッドシートに書かれているGoogle formのURLから回答を取得するコードを書いています。
発生している問題・エラー
TypeError: formResponses.getItemResponses is not a function
Writetosp @ write_in_sp_from_res.gs:29
該当するソースコード
//回答があった時に実行されるトリガーにしたい
function Writetosp() {
// quizからURLをもらってその回答をまとめる
const sheet = SpreadsheetApp.openByUrl('スプレッドシートのURL')
.getSheetByName('シート1');
var rowIndex = sheet.getLastRow();
const form_ans_url = sheet.getRange(rowIndex, 3);
Logger.log(form_ans_url.isBlank());
//最後の行の3つ目のデータ(edit用のGoogleformURL)があったら動く
if(!(form_ans_url.isBlank())){
//最後の行の2つ目のデータ(URL)を取得
var form_edit_URL = sheet.getRange(rowIndex, 3).getValue();
// Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
Logger.log(form_edit_URL);
//google formを開く
const form = FormApp.openByUrl(form_edit_URL);
// フォームの回答を取得
var formResponses = form.getResponses();
Logger.log(formResponses);
var answer = formResponses.getItemResponses();
// スプレッドシートに書き込むデータ
const data = {
この画像に点数を0から9で付けてください: "",
};
// 回答内容を取得
for (let i = 0; i < answer.length; i++) {
const title = answer[i].getItem().getTitle();
// 必要であれば、シートに書き込むデータを加工
data[title] = answer[i].getResponse();
}
// 指定したシートに回答内容を書き込む
sheet.getRange(sheet2.getLastRow(),4).setValue(data);
}
}
途中のLogger.logでURLが正しく送られているかと、formResponsesの型を確認しています。
トリガーの再設定もしました。
プロジェクトの OAuth スコープは https://www.googleapis.com/auth/forms.currentonly
https://www.googleapis.com/auth/forms
https://www.googleapis.com/auth/spreadsheets
の三つです。
0