Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Firebaseでslack力を上げる

 Firebaseでslack力を上げる

Otemachi Firebase #2

122ec46444f145d8253582a7cade5f4f?s=128

tebasakyu

June 23, 2017
Tweet

More Decks by tebasakyu

Other Decks in Programming

Transcript

  1. Firebaseでslack力を上げる Otemachi Firebase #2 @tebasakyu

  2. 自己紹介 • 鈴木 誠 (Makoto Suzuki) ◦ 娘: 遙華(Haruka) 4ヶ月

    • Monstar Lab, Inc. • Android Engineer • Twitter: @tebasakyu • GitHub: @tebasakyu
  3. いつものやつ

  4. 前提や状況など • GitHubとslackでユーザー名が異なる ◦ 今回の例 ▪ GitHub: @tebasakyu ▪ slack:

    @tebasaki • プロジェクトメンバーが多く、GitHubの動きが活発 • または他の通知系も同一channelにまぜまぜしすぎ
  5. GitHub上で普通にメンションしたもの GitHub上でslackのユーザー名を記述したもの

  6. どちらもslackで通知が来ない。 ※ハイライトも通知はされない 見逃すと困るからメールチェックする。 結局メール見てる。slack力が低い!

  7. Cloud Functions for Firebase を使う Firebaseの公式サンプルに手を加えていく形です。 Post GitHub commits to

    Slack channel. https://github.com/firebase/functions-samples/tree/master/github-to-slack
  8. Functionsの役割 • GitHub上のアクションをHookする ◦ WebHookのPayloal URLにFuncionsのURLを指定 • GitHubの“@abc”を、slackの”@xyz”に置換する • slackのIncoming

    Webhooksに編集したものをPOSTする ◦ API: https://api.slack.com/methods/chat.postMessage
  9. Realtime Database も使う • GitHubとslackのユーザー名をマッピングする

  10. ../functions/index.js

  11. None
  12. 結果 これならslackだけ眺めてても、メンションを見逃さな い。

  13. 注意 Blazeプラン(従量制)でないと、外部APIと連携できません。 https://firebase.google.com/pricing/#blaze-calculator ※200万発/月 までFreeです。

  14. おまけ - Hostingを使って手間を減らす ユーザー名マッピング用のページを用意してDBにsetする ../public/index.html

  15. 参考 • 公式サンプル (Post GitHub commits to Slack channel.) ◦

    https://github.com/firebase/functions-samples/tree/master/github-to-slack • Cloud Functions for Firebaseとは? ◦ http://qiita.com/koki_cheese/items/013d4e6ab5aefc792388 • SlackのGitHub連携をやめGitHub->AmazonSNS->Lambda->Slackで連携する ◦ http://qiita.com/ooharabucyou/items/2a3dca643f6b7783d665