@slack/bolt on Cloud Functions for Firebase
by
Roadagain
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
@slack/bolt on Cloud Functions for Firebase Roadagain
Slide 2
Slide 2 text
自己紹介 export default { name: ‘Roadagain’, twitter: ‘@ringoh72’, age: 21, company: ‘Mobile Factory, Inc.’, organization: “Kosen 13s’”, }
Slide 3
Slide 3 text
はじめに
Slide 4
Slide 4 text
seratchさんがいらっしゃると聞いて ビビり散らしてます
Slide 5
Slide 5 text
ここから本編
Slide 6
Slide 6 text
@slack/boltとは slack botを開発するためのフレームワーク より簡単にbotが作れる 使った感じwebhookよりは楽だったけど、 他はやったことがないので比較対象がない…
Slide 7
Slide 7 text
Cloud Functions for Firebaseとは 公式ドキュメントによると Firebase機能やHTTPSリクエストによってトリガーされた イベントに応じて、バックエンドコードを自動的に実行できます。 つまりFirebaseのLambda https://firebase.google.com/docs/functions
Slide 8
Slide 8 text
Kosen 13s’ slackでの出来事
Slide 9
Slide 9 text
「bolt使ってみようぜ」
Slide 10
Slide 10 text
「bolt使ってみようぜ」 Iruyan-Zak「どこで動かそうか」 Roadagain「Firebaseがいい!」 Iruyan-Zak「じゃあそれでいこう」
Slide 11
Slide 11 text
「bolt使ってみようぜ」 Roadagain「とりあえずサンプルコードは写した」 Roadagain「繋ぎ込み…どうやるの…?」
Slide 12
Slide 12 text
requestとresponseを受け取ってcallback的にresponseを返す express的なやり方 Cloud Functions for Firebaseの書き方
Slide 13
Slide 13 text
eventを受け取ってなんやかやする requestやらresponseやらはラップされているっぽい @slack/boltの書き方
Slide 14
Slide 14 text
繋ぎ込み分からない Roadagain「分からない…ググろう」
Slide 15
Slide 15 text
bolt firebase cloud functions
Slide 16
Slide 16 text
bolt firebase cloud functions ヒットするのはfirebase-bolt Realtime Database用のセキュリティルールコンパイラ 今はもう開発止まってるっぽい? なんにせよ紛らわしい
Slide 17
Slide 17 text
今はそうでもないみたい
Slide 18
Slide 18 text
slack bolt firebase cloud functions
Slide 19
Slide 19 text
slack bolt firebase cloud functions boltじゃなくてbotでヒットしてる
Slide 20
Slide 20 text
「bolt使ってみようぜ」 Roadagain「もうだめだぁ…おしまいだぁ…」
Slide 21
Slide 21 text
Iruyan-Zakがissueを見つけてくる
Slide 22
Slide 22 text
Iruyan-Zakがissueを見つけてくる
Slide 23
Slide 23 text
Iruyan-Zakがissueを見つけてくる seratch/bolt-on-cloud-functions-for-firebase
Slide 24
Slide 24 text
ExpressReceiverでいけるらしい https://github.com/seratch/bolt-on-cloud-functions-for-firebase/blob/master/functions/index.js ・ ・ ・
Slide 25
Slide 25 text
ExpressReceiverでいけるらしい https://github.com/seratch/bolt-on-cloud-functions-for-firebase/blob/master/functions/index.js ・ ・ ・
Slide 26
Slide 26 text
ExpressReceiverでいけるらしい ExpressReceiver.appはexpressのインスタンス →つまりcloud functionsと形式が合う! https://github.com/slackapi/bolt/blob/master/src/ExpressReceiver.ts#L40 ・ ・ ・
Slide 27
Slide 27 text
早速パクる
Slide 28
Slide 28 text
早速パクる
Slide 29
Slide 29 text
各種トークン・シークレットの埋め込み firebase functions:config:set を利用して埋め込む https://firebase.google.com/docs/functions/config-env
Slide 30
Slide 30 text
各種トークン・シークレットの埋め込み 埋め込まれたconfigは firebase functions:config:get で取得可能 https://firebase.google.com/docs/functions/config-env
Slide 31
Slide 31 text
各種トークン・シークレットの埋め込み functionsのコードでは functions.config() を使って参照 https://firebase.google.com/docs/functions/config-env
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
// ここでデモする
Slide 34
Slide 34 text
まとめ ● boltは楽にbotが作れる ● ExpressReceiverを使えばCloud Functions for Firebaseでも動く ● Cloud Functionsからbolt⚡が届く
Slide 35
Slide 35 text
Special Thanks Kosen 13s’のslackを実験場に提供してくれたいるやん (@Iruyan_ZAK) firebaseでのサンプルを作ってくださっていたseratchさん (@seratch_ja) ありがとうございました
Slide 36
Slide 36 text
おまけ @slack/boltのlint通ってなかったのでissueを立てました プルリクチャンス