質問内容
LINE Messaiging APIとGASを使ってGoogle Spreadsheetに書き込めれるようにしています。
しかし、GAS側にエラーが走りメッセージの返信やSpreadsheetに書き込むことができません。
このサイトの6までやっています。
https://note.com/ky120930/n/n4e6c3fc68dd9
エラー :
・TypeError: Cannot read property 'getLastRow' of null(行 10、ファイル「コード」)
(翻訳 :TypeError:nullのプロパティ 'getLastRow'を読み取れません(行10、ファイル「コード」))
試したこと :
・LINE Messaiging APIのチャンネルを変えてみる
GAS
1//LINE Developersで取得したアクセストークンを入れる 2var CHANNEL_ACCESS_TOKEN = 'アクセストークン'; 3var line_endpoint = 'https://api.line.me/v2/bot/message/reply'; 4 5//取得したメッセージを格納するためのスプレッドシート情報を入力 6var id = 'シートID'; 7var dateSheet = SpreadsheetApp.openById(id).getSheetByName('シート名1'); 8 9//スプレッドシートの最終行を取得 10var lastlow = dateSheet.getLastRow(); 11 12//ポストで送られてくるので、送られてきたJSONをパース 13function doPost(e) { 14 var json = JSON.parse(e.postData.contents); 15 16 //返信するためのトークン取得 17 var reply_token= json.events[0].replyToken; 18 if (typeof reply_token === 'undefined') { 19 return; 20 } 21 22 //送られたメッセージ内容を取得 23 var message = json.events[0].message.text; 24 25 //配列を宣言 26 var arr_test = []; 27 28 //LINEの内容を改行毎に区切って配列に格納 29 var arr_test = message.split(/\r\n|\r|\n/); 30 31 //指定の文言を置換する 32 arr_test[0] = arr_test[0].replace('タイトル:', ''); 33 arr_test[1] = arr_test[1].replace('日付:', ''); 34 arr_test[2] = arr_test[2].replace('場所:', ''); 35 arr_test[3] = arr_test[3].replace('開始時間:', ''); 36 arr_test[4] = arr_test[4].replace('終了時間:', ''); 37 38 //置換後の配列の値をスプレッドシートの最終行に指定のセルに格納 39 dateSheet.getRange(lastlow+1, 1).setValue(arr_test[0]); 40 dateSheet.getRange(lastlow+1, 2).setValue(arr_test[1]); 41 dateSheet.getRange(lastlow+1, 3).setValue(arr_test[2]); 42 dateSheet.getRange(lastlow+1, 4).setValue(arr_test[3]); 43 dateSheet.getRange(lastlow+1, 5).setValue(arr_test[4]); 44 dateSheet.getRange(lastlow+1, 6).setValue("登録"); 45 46 // メッセージを返信 47 UrlFetchApp.fetch(line_endpoint, { 48 'headers': { 49 'Content-Type': 'application/json; charset=UTF-8', 50 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN, 51 }, 52 'method': 'post', 53 'payload': JSON.stringify({ 54 'replyToken': reply_token, 55 'messages': [{ 56 'type': 'text', 57 'text': 'スプレッドシートに登録したよ!!!', 58 }], 59 }), 60 }); 61 return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON); 62}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/30 00:08
2020/04/30 02:28 編集
2020/04/30 04:35