お世話になります。ご教示頂けましたら嬉しいです。
下記のコードでLINEからMessaging APIを使用してスプレッドシートに自動で記載する所までは成功しました。
ただG列にLINEメッセージ投稿時、20時15分以降だったら確認と記載「=IF(mod(A2, 1)>=time(20, 15, 0),"確認","")」
H列に、G列で確認が記載された場合はC列の記載を合体させて表示「=K2&" "&C2」と記載しており、
この関数が7行まで入っています。(実際には100行入れていました)
すると、G列とH列に関数が入っているためかLINEから取得したデータが8行目から入ってしまい、getlowを変更したりしてみましたがどうしても8行目から始まってしまいます。
これをG列とH列の関数をGASに入れてしまい、A2からLINEからのメッセージを表示させる事は可能でしょうか。
もしくはG列H列の関数はそのままに、A2から順番に入力が表示されるように設定する方法がありましたら、
お手数ですがご教示の程よろしくお願い申し上げます。
GAS
1var TOKEN = 'LINE TOKEN'; 2 3function doPost(e) { 4 var userMessage = JSON.parse(e.postData.contents).events[0].message.text; 5 var user_id = JSON.parse(e.postData.contents).events[0].source.userId; 6 //var user_disp_name = JSON.parse(e.postData.contents).events[0].displayName; 7 8 if (userMessage.match(/^\@/)) { 9 userMessage = userMessage.substr(1); 10 } else { 11 return; 12 } 13 14 var response = e.postData.getDataAsString(); 15 var spreadsheetId = "スプレッドシートID"; 16 var sheetName = "log"; 17 var spreadsheet = SpreadsheetApp.openById(spreadsheetId); 18 var sheet = spreadsheet.getSheetByName(sheetName); 19 20 21 var url = "https://api.line.me/v2/bot/profile/" + user_id; 22 var userProfile = UrlFetchApp.fetch(url, { 23 headers: { 24 Authorization: "Bearer " + TOKEN, 25 }, 26 }); 27 var json_user = JSON.parse(userProfile); 28 var user_disp_name = json_user.displayName; 29 console.log(user_disp_name); 30 31 32 var arr = userMessage.split(/\s/); 33 34 arr.unshift(user_disp_name); 35 36 arr.unshift(new Date()); 37 38 sheet.appendRow(arr); 39 40 return ContentService.createTextOutput(JSON.stringify({ content: "post ok" })).setMimeType(ContentService.MimeType.JSON); 41}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。