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
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
@slack/bolt on Cloud Functions for Firebase
gotanda.js #12 LT登壇スライド
Roadagain
July 26, 2019
More Decks by Roadagain
See All by Roadagain
StorybookでモジュールモードのVuex storeを利用する / Use Modules mode Vuex store in Storybook
roadagain
0
1.2k
HL-Report コントラクト開発裏話 / Developing Contracts of HL-Report
roadagain
1
740
Rustでオブジェクト指向エクササイズやってみた / OOP exercise in Rust
roadagain
0
470
RegExp the lifehack
roadagain
0
130
Other Decks in Programming
See All in Programming
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
600
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
2
920
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.6k
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
200
信頼性の目標を誰も求めてない
shubox
0
470
ALB ログから Trace を気合で繋げる技術
fohte
7
840
FDEとは、何者なのか?
masapyon1212
0
110
Oxlintはいいぞ(続)
yug1224
1
510
Cloudflare is Agents
chimame
0
190
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.3k
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
120
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.7k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
640
The Limits of Empathy - UXLibs8
cassininazir
1
630
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
480
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
180
How to make the Groovebox
asonas
2
2.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
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を立てました プルリクチャンス