前提
Googleフォームの入力結果をLINEグループに自動転送する設定をしているのですが、上手くいく特もあれば、上手くいかない時があり、不安定な状態となっています。届かない時は、以下のエラーメッセ―ジがでます。
おそらく日付の部分に問題があるのかなと思っています。
日付については、当日であれば入力しなくても済むようにタイムスタンプから日付をもってくるようにし、当日でなければ日付を入力するというスタイルにしました。
初心者なのですが、今回もご相談させていただきたく書き込ませていただきました。
なにとぞ、ご指導のほど、お願いいたします。
実現したいこと
安定してGoogleフォームの結果をここに実現したい。
- Googleへの入力が
- LINEグループに自動で転送される
- たまにエラーになることを防ぎたい
発生している問題・エラーメッセージ
TypeError: inp_date.replace is not a function at autoLine(コード:46:27)
該当のソースコード
GAS
1function autoLine(e) { 2 let itemResponses = e.response.getItemResponses(); 3 var inp_date = ''; 4 let str = ''; 5 6 for (var i = 0; i < itemResponses.length; i++) { 7 var itemResponse = itemResponses[i]; 8 var question = itemResponse.getItem().getTitle(); 9 var answer = itemResponse.getResponse(); 10 switch (i) { 11 case 0: 12 inp_date = answer; 13 str += "\n"; 14 break; 15 case 1: 16 str += question + ":" + answer.toString(); 17 str += "\n"; 18 break; 19 case 2: 20 str += question + ":" + answer.toString(); 21 str += "\n"; 22 break; 23 case 3: 24 str += question + ":" + answer.toString(); 25 str += "\n"; 26 break; 27 case 4: 28 str += question + ":" + answer.toString(); 29 str += "\n"; 30 break; 31 } 32 33 if( inp_date === ''){ 34 var timestamp = new Date(); 35 var mm = ("0" + ( timestamp.getMonth() +1)).slice(-2); 36 var dd = ("0" + timestamp.getDate()).slice(-2); 37 var date = new Date(); 38 var day = date.getDay(); 39 var arr_day = new Array('日', '月', '火', '水', '木', '金', '土'); 40 var t_date = ( mm + "月" + dd + "日" ); 41 var c_date = t_date + '(' + arr_day[day] + ')'; 42 } 43 else{ 44 Logger.log(inp_date); 45 Logger.log(typeof inp_date); 46 var t_date = inp_date.replace('-', '月', date) + '日'; 47 inp_date = inp_date.split('-'); 48 var mm = inp_date[0] - 1; 49 var dd = inp_date[1]; 50 var date = new Date(); 51 date.setMonth(mm); 52 date.setDate(dd); 53 var day = date.getDay(); 54 var arr_day = new Array('日', '月', '火', '水', '木', '金', '土'); 55 var c_date = t_date + '(' + arr_day[day] + ')'; 56 } 57 } 58 59 let token = "LINE Notify トークン"; 60 let body = "\n" + c_date + "\n" 61 + str.slice(0) ; 62 sendLine(token, body); 63} 64 65function sendLine(token, body) { 66 let options = 67 { 68 "method" : "post", 69 "payload" : {"message": body, 70 }, 71 "headers" : {"Authorization" : "Bearer "+ token} 72 }; 73 74 UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options); 75}``` 76 77### 試したこと 78 79何度か試したのですが、届く時と届かない時があります。 80 81### 補足情報(FW/ツールのバージョンなど) 82 83こちらのサイトを参考にしました。 84 85【コピペでOK!】GASでGoogleフォームの回答を管理者に自動LINE通知する方法 - Yuki's bnb blog 86[https://www.yukibnb.com/entry/gas_form_auto_line_to_admin](url)

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/29 17:08
2023/01/29 17:24
2023/01/29 17:27
2023/01/29 17:29 編集
2023/01/30 00:13
2023/02/02 15:08
2023/02/02 15:40 編集
2023/02/02 15:49