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
ClaspとTypescriptで Google Apps Scriptを動かす / serv...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hidetaka Okamoto
January 25, 2020
Programming
0
110
ClaspとTypescriptで Google Apps Scriptを動かす / serverlesskobe20200125
Serverless Meetup Kobe vol1 2020/01/25
#serverlesskobe
Hidetaka Okamoto
January 25, 2020
Tweet
Share
More Decks by Hidetaka Okamoto
See All by Hidetaka Okamoto
OpenAI APIで API Changelogを要約してみた話 / chatgpt-osaka-1
hideokamoto
0
650
コミュニティ運営から 中の人に変わって感じたこと
hideokamoto
0
100
Developerが Developer Advocateになった話 / dev-rel-meetup-tokyo-71
hideokamoto
0
350
Jamstack開発者のための App Runner入門
hideokamoto
1
510
WordPressでの webサイト制作2022 / ngk2022s
hideokamoto
0
460
JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021
hideokamoto
2
4.3k
AWS上でStripeを利用したアプリをより安全にデプロイする方法 /jaws-pankration-2021
hideokamoto
1
220
Shifter Headlessと Headless WordPressの紹介
hideokamoto
0
2k
Stripe & Next.js + AWS Amplify で会員 + 定期課金機能 / JP_Stripes20210903
hideokamoto
7
3.2k
Other Decks in Programming
See All in Programming
Package Management Learnings from Homebrew
mikemcquaid
0
210
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
260
今から始めるClaude Code超入門
448jp
8
8.6k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
600
Oxlint JS plugins
kazupon
1
860
CSC307 Lecture 03
javiergs
PRO
1
490
SourceGeneratorのススメ
htkym
0
190
CSC307 Lecture 07
javiergs
PRO
0
550
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
CSC307 Lecture 05
javiergs
PRO
0
500
AI巻き込み型コードレビューのススメ
nealle
1
150
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Side Projects
sachag
455
43k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
200
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
220
Transcript
ClaspͱTypescriptͰ Google Apps ScriptΛಈ͔͢ Serverless Meetup Kobe vol1 2020/01/25 #serverlesskobe
About: Hidetaka Okamoto גࣜձࣾσδλϧΩϡʔϒ "MFYB$IBNQJPOT 3FBDU5ZQF4DSJQU"84 #serverlesskobe
About: Hidetaka Okamoto גࣜձࣾσδλϧΩϡʔϒ "MFYB$IBNQJPOT 3FBDU5ZQF4DSJQU"84 #serverlesskobe
#serverlesskobe
Agenda Γ͔ͨͬͨ͜ͱ (PPHMF"QQT4DSJQUͷίʔυΛϩʔΧϧͰ։ൃ͢Δ 5ZQF4DSJQUΛͬͯ։ൃΛΑΓศརʹ͢Δ ͓ΘΓʹ #serverlesskobe
Agenda Γ͔ͨͬͨ͜ͱ (PPHMF"QQT4DSJQUͷίʔυΛϩʔΧϧͰ։ൃ͢Δ 5ZQF4DSJQUΛͬͯ։ൃΛΑΓศརʹ͢Δ ͓ΘΓʹ #serverlesskobe
Γ͔ͨͬͨ͜ͱ ؆୯ͳCPUʢ-*/&PS"MFYBΛఆʣ (PPHMFΧϨϯμʔͷ༧ఆՃΛτϦΨʔʹ͢Δ มߋ͞Εͨ༰Λνϟοτ76*Ͱ௨͢Δ ͍׳Εͨ5ZQF4DSJQUΛ͍͍ͨ #serverlesskobe
࣮ͨ͠ͷ (PPHMF"QQT4DSJQUͰ࣮ (PPHMFΧϨϯμʔΛτϦΨʔʹ࣮ߦ -*/&ͷ.FTTBHF"1*ʹ1045ϦΫΤετ #serverlesskobe
Agenda Γ͔ͨͬͨ͜ͱ (PPHMF"QQT4DSJQUͷίʔυΛϩʔΧϧͰ։ൃ͢Δ 5ZQF4DSJQUΛͬͯ։ൃΛΑΓศརʹ͢Δ ͓ΘΓʹ #serverlesskobe
GOOGLE APPS SCRIPT HTTPS://DEVELOPERS.GOOGLE.COM/APPS-SCRIPT?HL=JA #serverlesskobe
• Google͕ఏڙ͢ΔFaaS • 6ఔͷScript͕࣮ߦՄೳ • ੍ݶࣄ߲G Suite Planґଘ • script.google.comͰཧ
• GUIͰίʔυΛฤूՄೳ • Google Appsͱͷੑ #serverlesskobe
• Google͕ఏڙ͢ΔFaaS • 6ఔͷScript͕࣮ߦՄೳ • ੍ݶࣄ߲G Suite Planґଘ • script.google.comͰཧ
• GUIͰίʔυΛฤूՄೳ • Google Appsͱͷੑ #serverlesskobe
GUI্Ͱ࣮ɾཧͨ͘͠ͳ͍ʂ #serverlesskobe
npm I -g @google/ clasp C ommand L ine A
pps S cript P roject #serverlesskobe
claspͱ (PPHMF͕ϦϦʔε͍ͯ͠Δ("4͚$-*πʔϧ σϓϩΠෳɺεςʔλεͷ֬ೝͳͲͷૢ࡞͕Մೳ DMBTQMPHJOͰϩάΠϯ͢ΔͱɺDMBTQSDKTPOʹೝূใΛه ("4Λ։ൃ͢ΔͳΒ$MBTQҰʢඪຊʣ #serverlesskobe
Google Apps Script APIΛ༗ޮԽ͓ͯ͘͠ https://script.google.com/home/usersettings #serverlesskobe
$ clasp loginͰ ϩάΠϯը໘͕ ্ཱ͕ͪΔ #serverlesskobe
͍Ζ͍Ζͱݖݶ ཁٻ͞ΕΔ Serverless Framework͕ AdministratorAccessཁٻ͢Δͷʹ ͍ۙΑ͏ͳҹ #serverlesskobe
$ cat ~/.clasprc.json tokenͳͲ࿙Β͞ͳ͍Α͏ʹҙ͢Δ #serverlesskobe
$ clasp createͰϓϩδΣΫτΛ࡞͢Δ https://github.com/google/clasp#create #serverlesskobe
createޙʹpullͰ entrypointΛऔಘ Code.jsʹίʔυΛॻ͍ͯ push͢ΕOK #serverlesskobe
claspͰͰ͖Δ͜ͱʢҰ෦ʣ DMBTQQVTIͰσϓϩΠ DMBTQWFSTJPOlzͰόʔδϣϯઃఆ DMBTQWFSTJPOTͰόʔδϣϯҰཡऔಘ DMBTQMPHTͰ࣮ߦϩάͷදࣔʢGSPN4UBDL%SJWFSʣ #serverlesskobe
claspΛͬͯϩʔΧϧͰGAS։ൃ ެࣜπʔϧͷ҆৺ײ όʔδϣχϯά$MPOFͳͲ͋Γखް͍ ("4ͳΒͰϓϩύςΟʹ͍ͭͯࣗྗͰௐΔඞཁ͋Γ ͠ΐ͏͖͡ΊΜͲ͍͘͞ #serverlesskobe
Agenda Γ͔ͨͬͨ͜ͱ (PPHMF"QQT4DSJQUͷίʔυΛϩʔΧϧͰ։ൃ͢Δ 5ZQF4DSJQUΛͬͯ։ൃΛΑΓศརʹ͢Δ ͓ΘΓʹ #serverlesskobe
ͳͥTypeScriptΛ͍͍ͨͷ͔ (PPHMF"QQT͔Β͘Δσʔλͷܕ͕Γ͍ͨ ("4Ͱར༻Ͱ͖ΔάϩʔόϧมܥΛΓ͍ͨ ("4ʹ'FUDI"QQTଓܥͷಠࣗมɾΫϥε͕ଟ͋Δ Կ͕͋Δͷ͔ɺͲ͏͍͍͑ͷ͔ΛάάΓͨ͘ͳ͍ ܕ͕ͳ͍··ॻ͍ͨࣗͷίʔυΛ৴༻Ͱ͖ͳ͍ #serverlesskobe
claspTypeScript ϑϨϯυϦʔ #serverlesskobe
ܕใͷऔಘɿnpm install --save @types/google-apps-script #serverlesskobe
Clasp push࣌ʹτϥϯεύΠϧͯ͘͠ΕΔͷͰɺͦͷ··pushͰ͖Δ #serverlesskobe
Google AppsܥͷAPIʹର͢Δೖྗิڧྗ #serverlesskobe
GoogleΧϨϯμʔ͔ΒͷΠϕϯτσʔλΛܗ͢Δαϯϓϧ #serverlesskobe
LINEͷMessage APIܦ༝ͰϝοηʔδΛૹ৴͢Δαϯϓϧ #serverlesskobe
Claspͷҙ 3FRVJSFJNQPSUΘͳ͍ʢ͏ͳΒXFCQBDLͳͲͰϏϧυʣ ॏ͍ͨ4%,ΛCVOEMF͢ΔͱΞοϓϩʔυͰ͖ͳ͍͜ͱ͕͋Δ -*/&4%,͕μϝͩͬͨͷͰ1045PS"1*(8ՃͰରԠͨ͠ (PPHMFͷυΩϡϝϯτͷάάϥϏϦςΟ͕͍ ʮ("4ͰۀޮԽʂʯܥهࣄʹຒΕͯΔͷͰݕࡧͭΒ͍ #serverlesskobe
ݸਓతGAS(Clasp)͍ॴ (PPHMFܥαʔϏεͷΠϕϯτϒϦοδͱͯ͠ͷ("4 "84ͷΠϕϯτ&WFOU#SJEHF(PPHMF"QQT("4 ۩ମతͳॲཧܥΛ୲͏"1*'BB4Λ༻ҙ͢Δ ("4ͰΠϕϯτσʔλΛཧͯ͠ɺॲཧܥʹ͚͛ͭΔ (PPHMF"QQTܥͷσʔλऩूʹઐ೦͢ΔͷҰͭ #serverlesskobe
Agenda Γ͔ͨͬͨ͜ͱ (PPHMF"QQT4DSJQUͷίʔυΛϩʔΧϧͰ։ൃ͢Δ 5ZQF4DSJQUΛͬͯ։ൃΛΑΓศརʹ͢Δ ͓ΘΓʹ #serverlesskobe
͓ΘΓʹ (PPHMF"QQTܥΛτϦΨʔʹ͢ΔͳΒ("4 (PPHMF"QQT4DSJQU $MBTQΛ͑ϩʔΧϧͰॻ͍ͨίʔυΛσϓϩΠͰ͖Δ 5ZQF4DSJQUͰͷ࣮؆୯ ͨͩ͠༰ྔ੍ݶ͕͋ΔͷͰ%JTQBDIFSҎ্ͷ༻్ผ'BB4Λ #serverlesskobe