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
190
買切りとサブスクについて比較しながらライセンス適用方法とサブスクのいいところを伝える/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
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
不幸な GC
chencmd
0
880
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
590
What We Talk About When We Talk About XP
m_seki
2
380
スマート反転とウェブアクセシビリティ
camiha
0
120
新卒PdEのリアル
ryu1013
1
420
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
2
500
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
54
36k
高専キャリア LT 発表内容
crysta1221
6
5.6k
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
420
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.3k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Building AI with AI
inesmontani
PRO
1
1.2k
It's Worth the Effort
3n
188
29k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Cult of Friendly URLs
andyhume
79
7k
Raft: Consensus for Rubyists
vanstee
141
7.7k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
510
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/