Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LINE Notifyで作る健康習慣をサポートする仕組み
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tadaken3
December 06, 2019
Programming
2.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LINE Notifyで作る健康習慣をサポートする仕組み
tadaken3
December 06, 2019
More Decks by tadaken3
See All by tadaken3
Exploratoryサーバーで構築した 戦略と実行を繋ぐSSoT分析環境
tadaken3
0
35
kubell 2025 エンジニアサマーインターンシップ
tadaken3
0
150
戦略と実行を繋ぐ活用ファーストのデータ分析基盤
tadaken3
0
70
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
1.4k
Exploratory:プロダクト活用度の話
tadaken3
0
96
[我が社のデータエンジニアリング現場]我が社が考える最強のデータ基盤・開発体制!
tadaken3
0
160
はじめてのWatchOSアプリ。はじめてのiOSアプリ
tadaken3
0
92
拡張現実を活用して幸福度をあげる方法
tadaken3
0
2.2k
チームづくりにおける成功法則 - LINEにおけるHR Techの取り組み- / people analytics tokyo
tadaken3
1
6.8k
Other Decks in Programming
See All in Programming
Intent as Code
shoppingjaws
6
1.1k
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
470
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.7k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.3k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
290
Webの地図
yosuke_furukawa
PRO
6
5k
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
350
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
200
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
430
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
330
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
A designer walks into a library…
pauljervisheath
211
25k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
410
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
350
Music & Morning Musume
bryan
48
7.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Language of Interfaces
destraynor
162
27k
GitHub's CSS Performance
jonrohan
1033
470k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Everyday Curiosity
cassininazir
0
340
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Transcript
Google Apps Scriptで 三日坊主を克服する -エンジニア健康サミット 2019- @tadaken3
自己紹介 • タダケン(@tadaken3) • 京都出身 • ピープルアナリスト (LINE 人事 ←
LINE ゲーム事業部 ← 任天堂) • 趣味:自転車、ポケモンGo 愛車のブロンプトン
筋トレしてますか?
筋トレしたいですよね?
せっかくジム通いを始めたけど、 • 仕事が忙しくて • 今日、雨だから • 飲み会に誘われた • やる気が出ない あるある
Google Apps Scriptで三日坊主を克服する 観測さえできれば干渉できる。 干渉できるなら、制御もできる。
①行動の記録 ④送信指示 ③計算結果の 保存 ②経過日数の 計算 スプレッドシート スマートフォン Google Apps
Scriptで三日坊主を克服する Google Apps Script LINE Notify API
Google Apps Scriptで三日坊主を克服する IFTTTでボタンを作る
Google Apps Scriptで三日坊主を克服する スプレッドシートに記録
Google Apps Scriptで三日坊主を克服する //IFTTTの日付形式から通常の日付に変換 function toDateFromIFTTT(str){ str = String(str); str
= str.replace(/at.*/,"")//正規表現でatより後ろの部分を削除 d = new Date(str); return d; } IFTTTの日付形式(str)をdateに変換
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); } 経過日数を計算する
Google Apps Scriptで三日坊主を克服する 経過日数が計算できた
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にメッセージを送る
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); } } 組わせて実装する
まとめ • IFTTTを使ってシートに行動を記録 • GASで経過日数を計算と送信判定 • LINE Notifyで通知 Google Apps
Scriptで三日坊主を克服する
他にも Fitbit APIと組わせて摂取カロリーと栄養素を通知 あなただけのパーソナルトレーナーが作れる
それでもジムに行けないあなたに • 健康のために「歩くこと」が非常に大切 • 一日10000歩以上が理想的 (最低でも5000歩以上はほしい) • 歩数を増やすと健康だけでなく 脳の機能もアップするという実験結果も
参考:https://www.ncbi.nlm.nih.gov/pubmed/20890449
お気に入りの健康アイテム
– tadaken3 “ポケモンGoのフレンド募集中”
ご清聴ありがとうございました