@slack/bolt on Cloud Functions for Firebase

@slack/bolt on Cloud Functions for Firebase

gotanda.js #12 LT登壇スライド

727d714103d1475e459bac77b656092e?s=128

Roadagain

July 26, 2019
Tweet

Transcript

  1. @slack/bolt on Cloud Functions for Firebase Roadagain

  2. 自己紹介 export default { name: ‘Roadagain’, twitter: ‘@ringoh72’, age: 21,

    company: ‘Mobile Factory, Inc.’, organization: “Kosen 13s’”, }
  3. はじめに

  4. seratchさんがいらっしゃると聞いて ビビり散らしてます

  5. ここから本編

  6. @slack/boltとは slack botを開発するためのフレームワーク より簡単にbotが作れる 使った感じwebhookよりは楽だったけど、 他はやったことがないので比較対象がない…

  7. Cloud Functions for Firebaseとは 公式ドキュメントによると Firebase機能やHTTPSリクエストによってトリガーされた イベントに応じて、バックエンドコードを自動的に実行できます。 つまりFirebaseのLambda https://firebase.google.com/docs/functions

  8. Kosen 13s’ slackでの出来事

  9. 「bolt使ってみようぜ」

  10. 「bolt使ってみようぜ」 Iruyan-Zak「どこで動かそうか」 Roadagain「Firebaseがいい!」 Iruyan-Zak「じゃあそれでいこう」

  11. 「bolt使ってみようぜ」 Roadagain「とりあえずサンプルコードは写した」 Roadagain「繋ぎ込み…どうやるの…?」

  12. requestとresponseを受け取ってcallback的にresponseを返す express的なやり方 Cloud Functions for Firebaseの書き方

  13. eventを受け取ってなんやかやする requestやらresponseやらはラップされているっぽい @slack/boltの書き方

  14. 繋ぎ込み分からない Roadagain「分からない…ググろう」

  15. bolt firebase cloud functions

  16. bolt firebase cloud functions ヒットするのはfirebase-bolt Realtime Database用のセキュリティルールコンパイラ 今はもう開発止まってるっぽい? なんにせよ紛らわしい

  17. 今はそうでもないみたい

  18. slack bolt firebase cloud functions

  19. slack bolt firebase cloud functions boltじゃなくてbotでヒットしてる

  20. 「bolt使ってみようぜ」 Roadagain「もうだめだぁ…おしまいだぁ…」

  21. Iruyan-Zakがissueを見つけてくる

  22. Iruyan-Zakがissueを見つけてくる

  23. Iruyan-Zakがissueを見つけてくる seratch/bolt-on-cloud-functions-for-firebase

  24. ExpressReceiverでいけるらしい https://github.com/seratch/bolt-on-cloud-functions-for-firebase/blob/master/functions/index.js ・ ・ ・

  25. ExpressReceiverでいけるらしい https://github.com/seratch/bolt-on-cloud-functions-for-firebase/blob/master/functions/index.js ・ ・ ・

  26. ExpressReceiverでいけるらしい ExpressReceiver.appはexpressのインスタンス →つまりcloud functionsと形式が合う! https://github.com/slackapi/bolt/blob/master/src/ExpressReceiver.ts#L40 ・ ・ ・

  27. 早速パクる

  28. 早速パクる

  29. 各種トークン・シークレットの埋め込み firebase functions:config:set を利用して埋め込む https://firebase.google.com/docs/functions/config-env

  30. 各種トークン・シークレットの埋め込み 埋め込まれたconfigは firebase functions:config:get で取得可能 https://firebase.google.com/docs/functions/config-env

  31. 各種トークン・シークレットの埋め込み functionsのコードでは functions.config() を使って参照 https://firebase.google.com/docs/functions/config-env

  32. None
  33. // ここでデモする

  34. まとめ • boltは楽にbotが作れる • ExpressReceiverを使えばCloud Functions for Firebaseでも動く • Cloud

    Functionsからbolt⚡が届く
  35. Special Thanks Kosen 13s’のslackを実験場に提供してくれたいるやん (@Iruyan_ZAK) firebaseでのサンプルを作ってくださっていたseratchさん (@seratch_ja) ありがとうございました

  36. おまけ @slack/boltのlint通ってなかったのでissueを立てました プルリクチャンス