前提
【GAS】
LINEBotでTODOリストの管理をするツールを作成しています
LINEでメッセージが送信されたら「〇〇をTODOリストに登録しました」とメッセージとともに、
〇〇をいう内容をスプレッドシートのB列に転記していきたいです
当方初心者でGASの知識に乏しく、どなたか有識者の方、ご教示いただけますと幸いです。
よろしくお願いいたします。
実現したいこと
①メッセージが送信されたら「〇〇(送信された内容)をTODOリストに登録しました」と返信
②〇〇(送信された内容)をスプレッドシートのB列の最終行へ転記
発生している問題・エラーメッセージ
①の返信まではできましたが②の転記がうまくいきません
該当のソースコード
GAS
1 2let token = PropertiesService.getScriptProperties().getProperty('CA_TOKEN'); //チャンネルアクセストークン格納 3 4function doPost(e) { 5 let event = JSON.parse(e.postData.contents).events[0]; 6 7 // 応答トークン 8 let replyToken = event.replyToken; 9 10 // ユーザーからのメッセージ 11 let userMessage = event.message.text; 12 13 // 応答メッセージ用のAPI URL 14 let url = 'https://api.line.me/v2/bot/message/reply'; 15 16 17 18 if (userMessage === undefined) { 19 // メッセージ以外(スタンプや画像など)が送られてきた場合 20 userMessage = '画像とスタンプはわからないよ!'; 21 } 22 23 UrlFetchApp.fetch(url, { 24 'headers': { 25 'Content-Type': 'application/json; charset=UTF-8', 26 'Authorization': 'Bearer ' + token, 27 }, 28 'method': 'post', 29 'payload': JSON.stringify({ 30 'replyToken': replyToken, 31 'messages': [{ 32 'type': 'text', 33 'text': "「" + userMessage +"」" + "をTODOリストに追加したよ~", 34 }] 35 }) 36 }); 37 38 let ass = SpreadsheetApp.getActiveSpreadsheet() 39 let sheet = ass.getSheetByName("TODOリスト") 40 let lastrow = ass.getLastRow() 41 42 sheet.getRange(lastrow,2).setValue(userMessage) 43 44 return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON); 45 46}
試したこと
let ass = SpreadsheetApp.getActiveSpreadsheet()
let sheet = ass.getSheetByName("TODOリスト")
let lastrow = ass.getLastRow()
sheet.getRange(lastrow,2).setValue(userMessage)
の入れる位置を変えてみたりしましたがうまくいきません。。。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー