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

Firebaseでslack力を上げる

 Firebaseでslack力を上げる

Otemachi Firebase #2

tebasakyu

June 23, 2017
Tweet

More Decks by tebasakyu

Other Decks in Programming

Transcript

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

    View Slide

  2. 自己紹介
    ● 鈴木 誠 (Makoto Suzuki)
    ○ 娘: 遙華(Haruka) 4ヶ月
    ● Monstar Lab, Inc.
    ● Android Engineer
    ● Twitter: @tebasakyu
    ● GitHub: @tebasakyu

    View Slide

  3. いつものやつ

    View Slide

  4. 前提や状況など
    ● GitHubとslackでユーザー名が異なる
    ○ 今回の例
    ■ GitHub: @tebasakyu
    ■ slack: @tebasaki
    ● プロジェクトメンバーが多く、GitHubの動きが活発
    ● または他の通知系も同一channelにまぜまぜしすぎ

    View Slide

  5. GitHub上で普通にメンションしたもの
    GitHub上でslackのユーザー名を記述したもの

    View Slide

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

    View Slide

  7. Cloud Functions for Firebase を使う
    Firebaseの公式サンプルに手を加えていく形です。
    Post GitHub commits to Slack channel.
    https://github.com/firebase/functions-samples/tree/master/github-to-slack

    View Slide

  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

    View Slide

  9. Realtime Database も使う
    ● GitHubとslackのユーザー名をマッピングする

    View Slide

  10. ../functions/index.js

    View Slide

  11. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide