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
工数表書き忘れ防止機能を作ってみた 〜 GASを使ったSlackへの自動通知 〜
Search
sugar
December 14, 2018
Programming
100
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
工数表書き忘れ防止機能を作ってみた 〜 GASを使ったSlackへの自動通知 〜
Frontend Nagoya #7
sugar
December 14, 2018
More Decks by sugar
See All by sugar
a-blog cms Ver. 3.2 のV2モジュールとTwig記法を導入してみて
sugawara
0
80
a-blog cms Training Camp 2023 - a-blog cms での実装フローを紹介
sugawara
0
130
a-blog cms での簡単不正ログイン対策
sugawara
0
180
買切りとサブスクについて比較しながらライセンス適用方法とサブスクのいいところを伝える/ablogcms-zoomup202105
sugawara
0
37
a-blog cms を使ったサイト制作ガイドラインを作ってみた
sugawara
0
480
私の1年間とa-blog cmsだからできる簡単UI対応
sugawara
0
460
『CSSに不安を抱く私を W3C仕様が救ってくれた』WCAN 2019 Spring
sugawara
0
2k
WCAN2019春LT_ボツスライド2
sugawara
0
1.4k
WCAN2019春LT_ボツスライド1
sugawara
0
1.4k
Other Decks in Programming
See All in Programming
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
130
FDEとは、何者なのか?
masapyon1212
0
110
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
130
typoなんかねぇよ
raspython3
0
650
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
源内ハンズオン概要編
hideg
0
240
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
210
Flow は今どうなっているか
mizdra
PRO
0
840
ALB ログから Trace を気合で繋げる技術
fohte
7
840
高専キャリア LT 発表内容
crysta1221
6
5.4k
仕様駆動開発の消費期限
watany
20
9.2k
[DroidKaigi 26] How We Moved from Android Studio to Slack
thisaay
0
150
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
510
Facilitating Awesome Meetings
lara
57
7.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
260
Typedesign – Prime Four
hannesfritz
42
3.2k
The Curious Case for Waylosing
cassininazir
1
490
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
370
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
300
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
Transcript
දॻ͖Εࢭػೳ Λ࡞ͬͯΈͨ ʙ GASΛͬͨSlackͷࣗಈ௨ ʙ 201812݄14 FrontEndNagoya#7 ੁݪ ࠼
දॻ͖Εࢭػೳ Λ࡞ͬͯΈͨ ʙ GASΛͬͨSlackͷࣗಈ௨ ʙ 201812݄14 FrontEndNagoya#7 ੁݪ ࠼ ࢼ࡞൛ʂ
ϓϩϑΟʔϧ ໊લɿੁݪ࠼ ॴଐɿ༗ݶձࣾΞοϓϧοϓϧ ʢ20183݄ೖࣾʣ ৬छɿϚʔΫΞοϓΤϯδχΞ ʢϑϩϯτΤϯυΤϯδχΞͱ໊ΕΔΑ͏ʹͳΓ͍ͨ…ʣ
օ͞ΜɺGAS Λ͝ଘͰ͔͢ʁ ʢ Google Apps Script ʣ
GAS ʢ Google Apps Script ʣͱʁ
GAS ʢ Google Apps Script ʣͱʁ Google Apps ScriptɺG Suiteͱ౷߹͞ΕͨϏδωε
ΞϓϦέʔγϣϯΛਝ͔ͭ؆୯ʹ࡞Ͱ͖Δɺ ਝͳΞϓϦέʔγϣϯ։ൃϓϥοτϑΥʔϜͰ ͢ɻJavaScriptͰίʔυΛهड़͠ɺGmailɺΧϨϯ μʔɺυϥΠϒͳͲͷ͖ͳG SuiteΞϓϦέʔ γϣϯ༻ͷΈࠐΈϥΠϒϥϦʹΞΫηεͰ͖· ͢ɻΠϯετʔϧ͢ΔͷԿ͋Γ·ͤΜɻϒ ϥβʹίʔυΤσΟλΛΠϯετʔϧ͠ɺ GoogleͷαʔόʔͰεΫϦϓτΛ࣮ߦ͠·͢ɻ Ҿ༻ݩɿhttps:/ /developers.google.com/apps-script/overview
GAS ʢ Google Apps Script ʣͱʁ Google ͕ఏڙ͍ͯ͠Δ JavaScript Λϕʔεʹ
ͨ͠ϓϩάϥϛϯάݴޠɻ
GAS ʢ Google Apps Script ʣͱʁ Google ͕ఏڙ͍ͯ͠Δ JavaScript Λϕʔεʹ
ͨ͠ϓϩάϥϛϯάݴޠɻ ͦͷಛʁ
GAS ʢ Google Apps Script ʣͱʁ Google ͕ఏڙ͍ͯ͠Δ JavaScript Λϕʔεʹ
ͨ͠ϓϩάϥϛϯάݴޠɻ
GAS ʢ Google Apps Script ʣͱʁ Google ͕ఏڙ͍ͯ͠Δ JavaScript Λϕʔεʹ
ͨ͠ϓϩάϥϛϯάݴޠɻ ؆୯ʹʂ ࿈ܞ&ૢ࡞Ͱ͖Δʂ
ࠓͷຊ
ࠓͷຊ දॻ͖Εࢭػೳ Λ࡞ͬͯΈͨ ʙ GASΛͬͨSlackͷࣗಈ௨ ʙ
ࠓͷຊ දॻ͖Εࢭػೳ Λ࡞ͬͯΈͨ ʙ GASΛͬͨSlackͷࣗಈ௨ ʙ Google Spreadsheet Google Spreadsheet
ͱ Slack ͷ࿈ܞ
ࠓͷຊ දॻ͖Εࢭػೳ Λ࡞ͬͯΈͨ ʙ GASΛͬͨSlackͷࣗಈ௨ ʙ Google Spreadsheet Google Spreadsheet
ͱ Slack ͷ࿈ܞ ؆୯ʹʂʂ
Google Spreadsheet
۩ମతͳॲཧ༰
۩ମతͳॲཧ༰ ࡢͷΛೖྗ͍ͯ͠Δ͔֬ೝ ೖྗ͞Ε͍ͯΕɺ Slackʮೖྗͯͯ͑͠Β͍Ͷʂʯͱ௨Λ͢Δ ೖྗ͞Ε͍ͯͳ͚Ε Slackʮೖྗͯ͠Ͷʂʯͱ௨͢Δɻ
։ൃͷϙΠϯτ 1. ։ൃڥ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏ 3. Slack ͷ௨ํ๏ 4. ࣗಈͰఆظతͳೖྗνΣοΫɺ
ɹ௨Λ͢ΔΈ
දॻ͖Εࢭػೳͷ࡞ 1. ։ൃڥ
දॻ͖Εࢭػೳͷ࡞ 1. ։ൃڥ Google Spreadsheet ͷΈʂ
දॻ͖Εࢭػೳͷ࡞ Google Spreadsheet ͷΈʂ 1. ։ൃڥ
දॻ͖Εࢭػೳͷ࡞ Google Spreadsheet ͷΈʂ 1. ։ൃڥ
දॻ͖Εࢭػೳͷ࡞ Google Spreadsheet ͷΈʂ 1. ։ൃڥ
දॻ͖Εࢭػೳͷ࡞ Google Spreadsheet ͷΈʂ ؆୯ʂʂ 1. ։ൃڥ
දॻ͖Εࢭػೳͷ࡞ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏
දॻ͖Εࢭػೳͷ࡞ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏ άάΕͨ͘͞Μग़ͯ͘Δʂʂ
දॻ͖Εࢭػೳͷ࡞ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏ SpreadsheetApp.getActiveSheet(); SpreadsheetApp.getActiveSheet().getLastRow(); SpreadsheetApp.getActiveSheet() ɹɹɹɹɹɹ.getRange(i, column, 1).getValue();
දॻ͖Εࢭػೳͷ࡞ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏ SpreadsheetApp.getActiveSheet(); SpreadsheetApp.getActiveSheet().getLastRow(); SpreadsheetApp.getActiveSheet() ɹɹɹɹɹɹ.getRange(i, column, 1).getValue(); ײతʹ͑Δػೳ͕ἧͬͯΔ
දॻ͖Εࢭػೳͷ࡞ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏ SpreadsheetApp.getActiveSheet(); SpreadsheetApp.getActiveSheet().getLastRow(); SpreadsheetApp.getActiveSheet() ɹɹɹɹɹɹ.getRange(i, column, 1).getValue(); ײతʹ͑Δػೳ͕ἧͬͯΔ
؆୯ʂʂ
දॻ͖Εࢭػೳͷ࡞ 3. Slack ͷ௨
දॻ͖Εࢭػೳͷ࡞ Incoming Webhook Ҿ༻ݩɿhttps:/ /get.slack.help/hc/ja/ articles/115005265063-Slack- %E3%81%A7%E3%81%AEIncoming-Webhook- %E3%81%AE%E5%88%A9%E7%94%A8 3. Slack
ͷ௨
දॻ͖Εࢭػೳͷ࡞ Incoming Webhook Ҿ༻ݩɿhttps:/ /get.slack.help/hc/ja/ articles/115005265063-Slack- %E3%81%A7%E3%81%AEIncoming-Webhook- %E3%81%AE%E5%88%A9%E7%94%A8 ϫʔΫεϖʔεʹ ؆୯ʹ֎෦ͷใΛ
ڞ༗Ͱ͖Δπʔϧɻ 3. Slack ͷ௨
දॻ͖Εࢭػೳͷ࡞ Incoming Webhook Ҿ༻ݩɿhttps:/ /get.slack.help/hc/ja/ articles/115005265063-Slack- %E3%81%A7%E3%81%AEIncoming-Webhook- %E3%81%AE%E5%88%A9%E7%94%A8 GASͱͷ࿈ܞํ๏ɺ άάΕͨ͘͞Μग़ͯ͘Δʂʂ
3. Slack ͷ௨
දॻ͖Εࢭػೳͷ࡞ Incoming Webhook Ҿ༻ݩɿhttps:/ /get.slack.help/hc/ja/ articles/115005265063-Slack- %E3%81%A7%E3%81%AEIncoming-Webhook- %E3%81%AE%E5%88%A9%E7%94%A8 3. Slack
ͷ௨ ؆୯ʂʂ GASͱͷ࿈ܞํ๏ɺ άάΕͨ͘͞Μग़ͯ͘Δʂʂ
දॻ͖Εࢭػೳͷ࡞ 4. ࣗಈ௨ʢτϦΨʔʣઃఆ
දॻ͖Εࢭػೳͷ࡞ 4. ࣗಈ௨ઃఆ ʢτϦΨʔʣ
දॻ͖Εࢭػೳͷ࡞ 4. ࣗಈ௨ઃఆ ʢτϦΨʔʣ GUI ͰઃఆͰ͖Δʂ
දॻ͖Εࢭػೳͷ࡞ 4. ࣗಈ௨ʢτϦΨʔʣઃఆ
දॻ͖Εࢭػೳͷ࡞ 4. ࣗಈ௨ʢτϦΨʔʣઃఆ GUI ͰઃఆͰ͖Δʂ ؆୯ʂʂ
։ൃͷϙΠϯτ 1. ։ൃڥ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏ 3. Slack ͷ௨ํ๏ 4. ࣗಈͰఆظతͳೖྗνΣοΫɺ
ɹ௨Λ͢ΔΈ
։ൃͷϙΠϯτ 1. ։ൃڥ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏ 3. Slack ͷ௨ํ๏ 4. ࣗಈͰఆظతͳೖྗνΣοΫɺ
ɹ௨Λ͢ΔΈ ˠ Spreadsheetʹ͔͚Δ ˠײతʹ͑Δػೳ͕ἧͬͯΔ ˠSlackΞϓϦͰ؆୯ઃఆ ˠGUI ը໘Ͱ؆୯ઃఆ
։ൃͷϙΠϯτ 1. ։ൃڥ 2. εϓϨουγʔτͷใΛऔಘ͢Δํ๏ 3. Slack ͷ௨ํ๏ 4. ࣗಈͰఆظతͳೖྗνΣοΫɺ
ɹ௨Λ͢ΔΈ ˠ Spreadsheetʹ͔͚Δ ˠSlackΞϓϦͰ؆୯ઃఆ ˠGUI ը໘Ͱ؆୯ઃఆ ؆୯ʂʂ ˠײతʹ͑Δػೳ͕ἧͬͯΔ
·ͱΊ JavaScript Λ͋·Γॻ͍ͨ͜ͱ͕ͳ͍ਓͰ ʢˢࢲͷ͜ͱʣɺ ؆୯ʹɺ͓खܰʹ։ൃͰ͖ͪΌ͏ʂ Google ΞϓϦؔ࿈ͰԿ͔Λ։ൃ͍ͨ͠ͳΒɺ ͥͻGASΛͬͯΈ͍ͯͩ͘͞ʂ
࠷ޙʹ…
͠SlackͰ௨ςετ͢ΔͳΒɺ μΠϨΫτϝοηʔδͰΓ·͠ΐ ͏ɻɻɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ facebook.com/raichimomo @rachicom_sugar https:/ /rachicom.net/