Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LINE Notifyで作る健康習慣をサポートする仕組み

tadaken3
December 06, 2019

LINE Notifyで作る健康習慣をサポートする仕組み

tadaken3

December 06, 2019
Tweet

More Decks by tadaken3

Other Decks in Programming

Transcript

  1. 自己紹介 • タダケン(@tadaken3) • 京都出身 • ピープルアナリスト (LINE 人事 ←

    LINE ゲーム事業部 ← 任天堂) • 趣味:自転車、ポケモンGo 愛車のブロンプトン
  2. Google Apps Scriptで三日坊主を克服する //IFTTTの日付形式から通常の日付に変換 function toDateFromIFTTT(str){ str = String(str); str

    = str.replace(/at.*/,"")//正規表現でatより後ろの部分を削除 d = new Date(str); return d; } IFTTTの日付形式(str)をdateに変換
  3. Google Apps Scriptで三日坊主を克服する var ss = SpreadsheetApp.getActiveSpreadsheet(); //スプレッドシートを取得 var sheet

    = ss.getSheetByName("log"); //シートを取得 //シートの最終行に経過日を計算する式をセットする function setFormuraLastRow(){ //シートの使用範囲のうち最終行を取得 var maxRow = sheet.getDataRange().getLastRow(); //A列の最終行の値を取得 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); } 経過日数を計算する
  4. Google Apps Scriptで三日坊主を克服する //LINEに通知を送る関数 function sentToLine(message){ var token = "先程取得したアクセストークン";

    var options = { "method" : "post", "payload" : "message=" + message, "headers" : {"Authorization" : "Bearer "+ token} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options); } LINE Notifyにメッセージを送る
  5. Google Apps Scriptで三日坊主を克服する function main(){ setFormuraLastRow() var maxRow = sheet.getDataRange().getLastRow();

    var passDate = sheet.getRange(maxRow,3).getValue(); var message =""; //経過日が3日もしくは7日以上だったらLINEに通知を送る if (passDate==3 || passDate>=7){ message = "最終トレーニングから"+ passDate + "日経過しました"; sentToLine(message); } } 組わせて実装する