そうだ。全部Slackにまとめよう。

今日はエンジニアらしいんだからしくないんだかよくわからないけど、知見溜まったし大変便利になったので自分の備忘録がてらブログ綴ります。

今日のテーマは、「そうだ。全部Slackにまとめよう。」です。何をまとめるのか。自分が確認しなくちゃいけないありとあらゆる通知を全部です。

具体的には何を指すのか。私の場合は以下通知。

  • 会社内の会話
  • 会社のシステムエラー通知
  • 会社のBacklog/redmineのチケット更新
  • Java女子部のstaffやりとり会話
  • Java女子部のSNS各種通知や問い合わせ
  • JJUGのSNS各種通知や問い合わせ
  • JJUGの幹事やりとり会話
  • PyLadiesTokyoのstaffやりとり会話
  • PyLadiesのSNS各種通知や問い合わせ

などなど・・・ざっくり出してもこんなかんじ。SNS各種〜とかまとめていますが、それぞれのコミュニティでそれぞれTwitterとかFacebookとかのアカウントを別々に持っているので、そりゃーもう「なんで見逃したの」とか言われても「見逃してごめん」としか言えないわけです。私バカだし面倒くさがりなのでいろんなところを監視とかできません。そこで今回のテーマの登場です。

◆Slackチームの使い分け

まずは各コミュニティごとにSlackチームを作ります。会社・Java女子部・PyLadiesTokyoはやりとり用にSlackが正式に採用されているので、特に今回は作業なし。JJUGについては今回新しくチームアカウントを(勝手に)取得しました。

◆今連携しているシステム

どのコミュニティでどれを、というのはおいておいて、私が連携構築したのは以下のシステム軍です。

  • Gmail
  • Trello
  • Twitter(特定アカウントの投稿)
  • Twitter(特定のハッシュタグ付投稿)
  • Facebookページ
  • Backlog

このほかにもGitと連携とか、GoogleFormと連携とかも採用されているんですが、今回は長くなっちゃうので省略。

◆Trello/Twitter(特定アカウントの投稿)

この2つの連携は簡単です。

スクリーンショット 2015-06-04 12.55.24

Slackのチーム名をクリックして「Configure Integrations」をクリック。webページでシステムページが開きます。

スクリーンショット 2015-06-04 12.56.09

ここからTrello/Twitter をそれぞれ選択して、今自分が持っているTrelloアカウント/Twitterアカウントを認証→通知を流すSlackのChannelもしくはGroupを選択しておしまいです。

◆Gmail/Twitter(特定のハッシュタグ付投稿)/Facebookページ

こちら3つのシステムの連携は、IFTTTというシステムを利用しました。IFTTTについては“作りながら覚える「IFTTT」レシピの使い方活用講座!”がキャプチャも多くわかりやすいのでオススメです。

IFTTTは「何がおきたら何をする」と起因となるサービスと起因サービスで起きたアクションに対して、連携システムで何をするのか、を直感的なUIで選べます。このシステムを利用して、

  • 指定したGmailアドレスに「xxx@hogehoge.jp」からメールが届いたらSlackのchannelに通知する
  • 指定したハッシュタグ付きのtweetがあればSlackのchannelに通知する
  • 指定したfacebookページに何か投稿されたらSlackのchannelに通知する

のように、IF(起因となるサービスとアクション)の出力先を全てSlackにしてやれば全て通知完了です。ただし、Gmailやハッシュタグ(tweet search)などは15分に1回のみ巡回するという制約があるので、リアルタイム通知はされないということを留意しておく必要があります。

◆Backlog

Backlogについては、2種類の方法で今回は対応しました。

まずは簡単なほう。ZapierというIFTTTに似た連携ツールを使ったやり方です。このやり方については、ヌーラボさんの公式ページで詳しく公開されていますので、参考に作業してみてください!詳細ページへはここをクリック!

現在コミュニティ運営でBacklogを使っているところでは、このZapierを利用したSlack通知システムを使っています。良い点としては、本当にぺろっと簡単にシステム連携できちゃうところ。画面だけぽちぽちしていけば完成する感じがIFTTT/Zapier共に楽チン感があります。逆にちょっと悲しいのは、無料プランだと1アカウントあたり100回/月という利用制限があるというところですね。無料プランなので制限があっても全くおかしいことではないんですが、ちょっと動きの多いイベント運営とかだとこの100回制限は厳しかったりします。お友達が自分のアカウント経由で登録してくれると上限値がどんどん上がっていくようですが。。。。

会社で使っているBacklogは当然100なんかあっという間に超える。かといって有料プランにするほど社内需要があるかもまだわからない。ということで、「パンがなければお菓子を食べればいいじゃない」的に作りました。ただただ受け取って送付するシステムを。

拙いソースですがこちらにおきました。

公開用、というよりはあくまで個人で使うために作ったソースなのでざっくりしてますが。。。Python3.4&Tornado を使ってWEBシステムの受け口を作って。slackpyという@iktakahiro お手製のライブラリを使ってさっくりSlackへぶん投げるシステムです。backlogtoslack.pyの42行目にSlackのincomminHookのURLを追加してあげればOK。あとは指定URLをBacklog側で呼び出すようにすれば通知が来る様になります。

自分のところでぶん投げてるので制限に引っかからず快適です。

JavaのSlack通知モジュール自分で作っておけば今後楽チンかもなー同じシステムjavaでもできそうだなー(主にSpringBootで)とかモニュモニュ考えたりもしました。今度やってみよう。

◆まとめ
ということで、今回は一部お友達から所望されていたSlack通知いろいろについてざーっとまとめを書きました。自分の備忘録にもなったのでよかったです。長くなった・・・ではでは。

広告