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

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

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for tadaken3 tadaken3
December 06, 2019

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

Avatar for tadaken3

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); } } 組わせて実装する