Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google Apps Scriptで三日坊主を克服する
Search
tadaken3
October 30, 2017
Programming
2
1.3k
Google Apps Scriptで三日坊主を克服する
10/31にGaiaxさんが主催の『Google Apps Script 活用ミートアップ』で使用した資料です。
https://gaiax.connpass.com/event/69200/
tadaken3
October 30, 2017
Tweet
Share
More Decks by tadaken3
See All by tadaken3
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
860
Exploratory:プロダクト活用度の話
tadaken3
0
58
[我が社のデータエンジニアリング現場]我が社が考える最強のデータ基盤・開発体制!
tadaken3
0
97
はじめてのWatchOSアプリ。はじめてのiOSアプリ
tadaken3
0
65
拡張現実を活用して幸福度をあげる方法
tadaken3
0
1.1k
LINE Notifyで作る健康習慣をサポートする仕組み
tadaken3
0
1.3k
チームづくりにおける成功法則 - LINEにおけるHR Techの取り組み- / people analytics tokyo
tadaken3
1
4.7k
Google Data Studioで イカしたダッシュボード作る
tadaken3
0
1.5k
Other Decks in Programming
See All in Programming
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
320
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
690
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
650
PipeCDのプラグイン化で目指すところ
warashi
1
250
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
280
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1.2k
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
190
CursorはMCPを使った方が良いぞ
taigakono
1
220
Is Xcode slowly dying out in 2025?
uetyo
1
250
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
2
610
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
490
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Docker and Python
trallard
44
3.5k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Navigating Team Friction
lara
187
15k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Transcript
Google Apps ScriptͰ ࡾओΛࠀ͢Δ @tadaken3
ࣗݾհ • λμέϯ(@tadaken3) • ژग़ • ෳۀɿ͍ͭྡʹITͷ͓ࣄʢhttps://tonari-it.comʣ • झຯɿࣗసंɺےτϨ •
ຊۀɿσʔλΞφϦετ
ےτϨͯ͠·͔͢ʁ
ےτϨ͍ͨ͠Ͱ͢ΑͶʁ
͔ͤͬ͘δϜ௨͍Λ࢝Ί͚ͨͲɺ • ࣄ͕ͯ͘͠ • ࠓɺӍ͔ͩΒ • ҿΈձʹ༠ΘΕͨ • Δؾ͕ग़ͳ͍ ͋Δ͋Δ
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 =""; //ܦա͕̏͘͠7Ҏ্ͩͬͨΒLINEʹ௨ΛૹΔ if (passDate==3 || passDate>=7){ message = "࠷ऴτϨʔχϯά͔Β"+ passDate + "ܦա͠·ͨ͠"; sentToLine(message); } } Θ࣮ͤͯ͢Δ
·ͱΊ • IFTTTΛͬͯγʔτʹߦಈΛه • GASͰܦաΛܭࢉͱૹ৴ఆ • LINE NotifyͰ௨ Google Apps
ScriptͰࡾओΛࠀ͢Δ
ଞʹ • Fitbit APIͱΘͤͯઁऔΧϩϦʔͱӫཆૉΛ௨ • ΰϛͷͷલʹ௨ • ༑ਓͷੜͷ1िؒલʹ௨ ͋ͳ͚ͨͩͷ ύʔιφϧτϨʔφʔ݉Ոఉbot͕࡞ΕΔ
– tadaken3 “ ےτϨʹGoogle Apps Scriptʹ ऴΘΓ͕ͳ͍”
ϒϩάͷಡऀొ͓ئ͍͠·͢ʂ http://tadaken3.hatenablog.jp
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠