Slackでjoinしている全てのチャンネルの発言を1つのウィンドウにまとめてみる|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。本日は私の誕生日パーティにようこそお越しくださいました。え?会場ここじゃない?BPSのSlack事情はじめまして、今年10月中途入社組のtazuです。転職ということもあり、今までとは違った環境に身をおいて新鮮な気分で仕事をさせてもらっています。社内の雰囲気を一番感じやすいのはやはりチャットツール・コミュニケーションツールでの交流ですね。前職ではコミュニケーションツールとしてHipChatを利用していたのですが、BPSではSlackを利用しています。チャットツールの使い方や雰囲気、どこまで攻めていいかは会社によって違うので、新人としてはいち早くチャット事情を掴むことが重要です。いうわけで早速参加できそうなパブリックチャンネルを探してみました。多いですね?ちなみに弊社の社員数は40名前後のようです。こんなにチャンネルが多いかというと、プロジェクト毎に分けているのはもちろん、知識の情報共有をするチャンネルも細かくジャンル分けをし、興味ある分野だけ監視できるようにしているからのようです。今までチャンネル数5程度の世界で活動してきた僕がいきなりこんな数のチャンネルを追えるはずもなく、慣れないショートカットを使ってチャンネルを切り替え発言を追っているだけで思考回路はショート寸前です。Slackの公式クライアントにはすべての未読を表示する機能があるのですが、あまり使い勝手がよくありません。いうわけで自分で作ってみることにしました。本日作るもの一つの窓にすべてのジョインしているチャンネルの発言が流れるようなものを作ります。APIを確認するまずはSlackの公式APIページを確認してみます。APIというのも用意されており、さらにはNode.jsのSDKもあります。HipChatのクライアントを作ろうとしたときはWebSocketでつなげられるAPIやSDKがなく、node-xmpp-clientを使ってHipChatの独自拡張XMPPと会話した記憶がありますが、その点Slackは良いですね。今回はこのSDKを使うことにしました。今回はNode.jsのSDKを使うということで、GUIはElectronにしました。jQueryになったところで力尽きたので今回はこれでいきます。SlackにつないでみるElectronの導入は今回のメインではないので省略いたします。Slackにつないでみましょう。ならって書いてみます。console.log(message);});テスト用のAPIトークンはここから取れます。これで無事につながったので、ためしにいろんなチャンネル発言してみると・・・なんと!すでにjoinしているすべてのチャンネルの発言が見えるようになったじゃありませんか。Consoleに流れる会話を見て余生を過ごすのも悪くないですね。これだけでは短いので、いくつか機能を追加してみます。MarkDownに沿って変換するSlackといえばMarkDownですよね。変換、表示してみましょう。Node.jsで使えるMarkDownコンバータはいろいろあるようです。今回はmarkedを使ってみました。marked(message);・・・動きました。Slackと完全に互換性のあるマークダウンではないので、一部公式クライアントと表示がことなります。Rubyのコメント’#‘を使って補足的に文章を足しただけなのに超アピールしているように見えてしまいます。平凡な日常に変化をもたらしてくれるのでこれはこれで楽しいと思いますのでこのままいきます。絵文字を変換するSlackといえば絵文字ですよね。好きな絵文字は:scream:です。Slackのデフォルトで入っている絵文字を表示してみましょう。APIの中に絵文字を取得するAPIがありますが、これは各チームが追加した絵文字の取得になります。必要であれば取得しましょう。これまたいろいろと変換方法はあるみたいです。絵文字なので見た目が一番好みなものを選ぶといいかもしれませんね。今回はemojioneを使ってみます。message;}なかなかDIY味あふれるコードです。今回はいろいろありますね。形式の部分をhtmlのimgタグへと変換しているだけです。いう形になってしまいます。Electronではこのような書き方だとhttpsプロトコルとみなされず正しく表示することができません。ここでは無理やりemojioneを使ったときだけhttpsを追加しています。replaceするときにhttpsをつければよさそうですがGitHubに今あがっているこの状態を掲載しています。完成などなど、いろいろな機能を追加していって今こんな感じです。秘伝のソースも用意しておきましたので、興味がある方はご覧ください。オートスクロールぐらいは追加したいと思っています。まとめチャットツールといえばbot作りが有名ですが、Slackだとクライアントアプリも簡単に作ることができます。いうのが欲しいなって思ったときは自分で作ってみると楽しいのではないでしょうか。Spreadsheetでのクエリ20人の開発会社でSLACK有料化してみたよ。SLACK有料プランを導入後の業務効率の変化と費用対効果の予想まとめ。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。