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
@slack/bolt on Cloud Functions for Firebase
Search
Roadagain
July 26, 2019
Programming
2
1k
@slack/bolt on Cloud Functions for Firebase
gotanda.js #12 LT登壇スライド
Roadagain
July 26, 2019
Tweet
Share
More Decks by Roadagain
See All by Roadagain
StorybookでモジュールモードのVuex storeを利用する / Use Modules mode Vuex store in Storybook
roadagain
0
1.1k
HL-Report コントラクト開発裏話 / Developing Contracts of HL-Report
roadagain
1
700
Rustでオブジェクト指向エクササイズやってみた / OOP exercise in Rust
roadagain
0
430
RegExp the lifehack
roadagain
0
120
Other Decks in Programming
See All in Programming
Catch Up: Go Style Guide Update
andpad
0
230
Swift Concurrency - 状態監視の罠
objectiveaudio
2
540
CSC509 Lecture 06
javiergs
PRO
0
260
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
180
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
170
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
230
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
1
670
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
1.1k
Software Architecture
hschwentner
6
2.3k
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
120
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
170
Range on Rails ―「多重範囲型」という新たな選択肢が、複雑ロジックを劇的にシンプルにしたワケ
rizap_tech
0
6.7k
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
How to train your dragon (web standard)
notwaldorf
97
6.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Embracing the Ebb and Flow
colly
88
4.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Six Lessons from altMBA
skipperchong
29
4k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Building Applications with DynamoDB
mza
96
6.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
620
Transcript
@slack/bolt on Cloud Functions for Firebase Roadagain
自己紹介 export default { name: ‘Roadagain’, twitter: ‘@ringoh72’, age: 21,
company: ‘Mobile Factory, Inc.’, organization: “Kosen 13s’”, }
はじめに
seratchさんがいらっしゃると聞いて ビビり散らしてます
ここから本編
@slack/boltとは slack botを開発するためのフレームワーク より簡単にbotが作れる 使った感じwebhookよりは楽だったけど、 他はやったことがないので比較対象がない…
Cloud Functions for Firebaseとは 公式ドキュメントによると Firebase機能やHTTPSリクエストによってトリガーされた イベントに応じて、バックエンドコードを自動的に実行できます。 つまりFirebaseのLambda https://firebase.google.com/docs/functions
Kosen 13s’ slackでの出来事
「bolt使ってみようぜ」
「bolt使ってみようぜ」 Iruyan-Zak「どこで動かそうか」 Roadagain「Firebaseがいい!」 Iruyan-Zak「じゃあそれでいこう」
「bolt使ってみようぜ」 Roadagain「とりあえずサンプルコードは写した」 Roadagain「繋ぎ込み…どうやるの…?」
requestとresponseを受け取ってcallback的にresponseを返す express的なやり方 Cloud Functions for Firebaseの書き方
eventを受け取ってなんやかやする requestやらresponseやらはラップされているっぽい @slack/boltの書き方
繋ぎ込み分からない Roadagain「分からない…ググろう」
bolt firebase cloud functions
bolt firebase cloud functions ヒットするのはfirebase-bolt Realtime Database用のセキュリティルールコンパイラ 今はもう開発止まってるっぽい? なんにせよ紛らわしい
今はそうでもないみたい
slack bolt firebase cloud functions
slack bolt firebase cloud functions boltじゃなくてbotでヒットしてる
「bolt使ってみようぜ」 Roadagain「もうだめだぁ…おしまいだぁ…」
Iruyan-Zakがissueを見つけてくる
Iruyan-Zakがissueを見つけてくる
Iruyan-Zakがissueを見つけてくる seratch/bolt-on-cloud-functions-for-firebase
ExpressReceiverでいけるらしい https://github.com/seratch/bolt-on-cloud-functions-for-firebase/blob/master/functions/index.js ・ ・ ・
ExpressReceiverでいけるらしい https://github.com/seratch/bolt-on-cloud-functions-for-firebase/blob/master/functions/index.js ・ ・ ・
ExpressReceiverでいけるらしい ExpressReceiver.appはexpressのインスタンス →つまりcloud functionsと形式が合う! https://github.com/slackapi/bolt/blob/master/src/ExpressReceiver.ts#L40 ・ ・ ・
早速パクる
早速パクる
各種トークン・シークレットの埋め込み firebase functions:config:set を利用して埋め込む https://firebase.google.com/docs/functions/config-env
各種トークン・シークレットの埋め込み 埋め込まれたconfigは firebase functions:config:get で取得可能 https://firebase.google.com/docs/functions/config-env
各種トークン・シークレットの埋め込み functionsのコードでは functions.config() を使って参照 https://firebase.google.com/docs/functions/config-env
None
// ここでデモする
まとめ • boltは楽にbotが作れる • ExpressReceiverを使えばCloud Functions for Firebaseでも動く • Cloud
Functionsからbolt⚡が届く
Special Thanks Kosen 13s’のslackを実験場に提供してくれたいるやん (@Iruyan_ZAK) firebaseでのサンプルを作ってくださっていたseratchさん (@seratch_ja) ありがとうございました
おまけ @slack/boltのlint通ってなかったのでissueを立てました プルリクチャンス