現在Google Apps ScriptとLINEをIFTTTで連携しようと考えており、こちらのウェブサイトをのコードをコピーしてとりあえず動かそうと思っているところです。
https://tadaken3.hatenablog.jp/entry/not-quit-easily
その際、エラーが起きます。当方GASは初心者なため、原因がわかりません。シートの最終行に経過日を計算する式をセットする欄のgetDataRangeがエラーと表示されます。シート名とLINEトークンなどはしっかり記載しています (ここではOOOOOと表示させていただきます)。 よろしくお願いします。
TypeError.nullのメソッド「getDataRange」を呼び出せません。(行26、ファイル「経過日数」)
var ss = SpreadsheetApp.getActiveSpreadsheet(); //スプレッドシートを取得 var sheet = ss.getSheetByName("OOOOOOOo"); //シートを取得 function main(){ setFormuraLastRow() var maxRow = sheet.getDataRange().getLastRow(); var passDate = sheet.getRange(maxRow,3).getValue(); var message =""; //経過日が3日もしくは7日以上だったらLINEに通知を送る if (passDate==1 || passDate>=1){ message = "最後の勉強から"+ passDate + "日経過しました"; sentToLine(message); } } //IFTTTの日付形式から通常の日付に変換 function toDateFromIFTTT(str){ str = String(str); str = str.replace(/at.*/,"") d = new Date(str); return d; } //シートの最終行に経過日を計算する式をセットする function setFormuraLastRow(){ var maxRow = sheet.getDataRange().getLastRow(); var str = sheet.getRange(maxRow,1).getValue(); var code = '=TODAY() - TO_DATE(B'+ maxRow+')'; sheet.getRange(maxRow,2).setValue(toDateFromIFTTT(str)); sheet.getRange(maxRow,3).setFormula(code); } //LINEに通知を送る関数 function sentToLine(message){ var token = "OOOOOOOOOOOOO"; var options = { "method" : "post", "payload" : "message=" + message, "headers" : {"Authorization" : "Bearer "+ token} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options); }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。