Slackで情報共有

ご無沙汰しておりました。エンジニアの木村です。

エニグモのエンジニア部門ではIMツールとしてSlackを使っています。すでにたくさんの詳しい紹介記事があるようです。

便利なIntegration

エニグモでもIntegrationと呼ばれる外部ツール連携機能を使って単なるIMツール以上に大活躍しています。

例えば、Jenkins CIというIntegrationが用意されており、テストがコケた時などに通知してくれます。

f:id:enigmo777:20200415195119p:plain

jenkinsというChannelを用意しておいて、そのChannel上でそのまま「〜〜の影響なので僕が対応しまーす。」などと書き込むことで、失敗した原因や誰が対応するかなどの共有がスムーズに可能になりました。

自分でIntegrationを作れる

さらに、APIが公開されているので、自分でIntegrationを作ることができます。すでに様々なIntegrationが有志によって作成され、下のページでCommunity-built Integrationsとして紹介されています。

https://api.slack.com/community

エニグモのメンバー(というか僕)も、はてなブックマークでブックマークしたのを契機に、そのURLをSlackへ投稿するIntegrationとしてhatebu-hookerを作りました。先ほどのページでもRubyのCommunity-built Integrationとして紹介されています!

f:id:enigmo777:20200415195146p:plain

はてブのWeb HookSlack APIを組み合わせて実装しています。

はてなとSlackのoauth2で連携させ、はてブWeb Hookキーを入力するだけで使用可能です。さらに、Slackへ投稿する・しないを特定のタグの有無によりコントロールすることができます(この機能は部長にプルリクしていただきました)!

質問やリクエストに答えてくれるSlackの開発チーム

Slackには、まだomniauthのstrategyがなかったのでそのgemも作成しました。

http://rubygems.org/gems/omniauth-slack

このgemを作るにあたって、その時点でSlackのAPIはまだ不十分なところがありました。oauth2を実現させるにはアクセスを承認したのは誰かという情報を返してくれるAPIが必要なのですが、当時はユーザ情報を返すAPIとして、チーム全員分の情報を返すusers.listしか提供されておらず、承認者を特定することができませんでした。

幸運にも、APIについての質問やリクエストに答えてくれるGoogleグループが用意されていたのでそこへリクエストしてみました。すると、もう実は開発されていたようで、ドキュメント化したという返事が程なく返ってきました(拙い英語ですが通じて何よりです)。

f:id:enigmo777:20200415195217p:plain

こうして本人のaccess tokenからその人の情報を取り出すことができるauth.testが使えるようになったわけです。

他のスレッドを見ると、「それ、必要なのはわかってるんだけど、たくさんTodoがありすぎてまだ着手できない!」などとSlackの開発者が答えていて、これからまだまだ発展していく様子が分かります。

そんなSlack、これからどうなっていくかが楽しみです。

今なら$100.00もらえる!

下のリンクから登録&アップグレードすると、期間限定でもれなく$100.00のクレジットが貰えるようです(僕らにも)!

slack.com

それでは。