google apps script を使って
フォームで送られた内容をgmailで送信するという機能実装するためにやっているのですが
いろいろなサイトに載っている以下のコードコピーして使ってもエラーを起こします。
http://ascii.jp/elem/000/000/879/879412/index-3.html
1function submitForm(e){ 2 var itemResponses = e.response.getItemResponses(); 3 var message = ''; 4 for (var i = 0; i < itemResponses.length; i++) { 5 var itemResponse = itemResponses[i]; 6 var question = itemResponse.getItem().getTitle(); 7 var answer = itemResponse.getResponse(); 8 message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n'; 9 } 10 var address = '☆あなたのGmailアドレスを記入☆'; 11 var title = 'お問い合わせフォームが送信されました'; 12 var content = '以下の内容でフォームが送信されました。\n\n' + message; 13 GmailApp.sendEmail(address, title, content); 14} 15
なので公式のリファレンスを見てみると以下のコードが書かれていたので
https://developers.google.com/apps-script/reference/forms/form-response
1var form = FormApp.openById('フォームのid'); 2 var formResponses = form.getResponses(); 3 for (var i = 0; i < formResponses.length; i++) { 4 var formResponse = formResponses[i]; 5 var itemResponses = formResponse.getItemResponses(); 6 for (var j = 0; j < itemResponses.length; j++) { 7 var itemResponse = itemResponses[j]; 8 Logger.log('Response #%s to the question "%s" was "%s"', 9 (i + 1).toString(), 10 itemResponse.getItem().getTitle(), 11 itemResponse.getResponse()); 12 } 13 }
それを使ってみるとメールは送れたのですが回答のタイトルだけが取得され
中身が取得できません。それで色々コードをいじってログを出してやってみたのですが
自分では解決できませんでした。どなたか、ご教授願いします。
※以下のコードが自分のコードです(いじくりすぎてわかりにくくなっています。すいません。)※
1var spreadsheetID = SpreadsheetApp.getActiveSpreadsheet().getId(); 2 3function form() { 4 var form = FormApp.openById('フォームのid'); 5 var sheet = SpreadsheetApp.openById(spreadsheetID); 6 var tmSheet = sheet.getSheetByName('シート1'); 7 var Item = form.getItems(); 8 Logger.log(Item); 9 var lastColumn=tmSheet.getDataRange().getLastColumn();//4 10 Logger.log(lastColumn); 11 var formResponses = form.getResponses(); 12 13 var h = formResponses[0]; 14 Logger.log(h); 15 //var l = h.getResponseForItem(); 16 //Logger.log(l); 17 var formlength = formResponses.length;//2 18 Logger.log(formlength);//2 19 20 for (var i = 0; i < lastColumn; i++) { 21 var formResponse = formResponses[i]; 22 Logger.log(formResponse); 23 24 25 var itemResponses = formResponse.getItemResponses(); 26 Logger.log(itemResponses); 27 var itemResponse = itemResponses[i]; 28 Logger.log(itemResponse); 29 var title=itemResponse.getItem().getTitle(); 30 var answer=itemResponse.getResponse; 31 Logger.log(answer); 32 Logger.log(title); 33 //var title1 = title(1,1); 34 var message = ''; 35 if(title=='名前は?'){ 36 var username = answer; 37 } 38 if(title=='今回借りる本の種類は?'){ 39 var book = answer; 40 } 41 if(title=='メールアドレス'){ 42 var mailaddress = answer; 43 } 44 message +=(i+1).toString()+title+answer; 45 //message += (i+1).toString() + '.' +title+'\n'; 46 Logger.log(message); 47 48 //message = message+answer; 49 //Logger.log(message); 50 51 } 52 var address = 'isshintakatsusaido@gmail.com'; 53 GmailApp.sendEmail(address, title, message); 54 } 55 56//var itemResponses = formResponse.getItemResponses(); 57 // var itemResponse = itemResponses[i];
コードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「</>」ボタンを押すとコードブロックになります。また、参考に下サイトのURLもリンク付きで追記してください。
回答1件
あなたの回答
tips
プレビュー