社内システム担当が基礎から学ぶHubot&Slack超入門!【解説編】


社内システム担当が基礎から学ぶHubot&Slack超入門!【解説編】

こんにちは、のびすけです。最近はフロントエンド開発をするバックエンドエンジニアという肩書きになりました。謎。

そんなわけで、バックエンドのエンジニアであることを証明するべく(笑)、最近個人的に使っているHubot&Slackなネタを書いてみたいと思います!

チャットツールと効率化の最近の流れ

以前「Chatworkの定期連絡を自動化!Chatwork APIを使って業務効率化してみた。」という記事を書きましたが、最近はChatWorkなどのチャット(コミュニケーション)ツールを社内利用している企業が増えています。

Githubが進めているオープンソースプロジェクトには「Hubot」というBot作成フレームワークがあり、社内のチャットツールに常駐させて効率化、というのが最近のモダンな開発現場でおこなわれているようです。

また、最近人気が出てきているチャットツールの中に「Slack」というものがあります。その機能やUIの充実度から、Web制作やシステム開発の現場ではSlackを採用するところも増えています。

6月に開催された#githubkaigiではrebuild.fm の @itonaoya さんらがHubotを使って自動デプロイをおこなう話などを紹介していました。

その話に触発され、僕も今回SlackとHubotを連携してみました!

Slackとは

ChatWorkと同じくチャットツールの1つとして、最近話題になっているのが「Slack」です。詳細は、以下の記事などをご参照ください。

▼参考

  • HipChatを使ってたらSlackを教えてもらったので試してみた(Yammer, ChatWork, Campfire, tibbrのようなエンタープライズコラボレーション、チャットサービス) – SideCI Blog – CIツール「SideCI」の継続的インテグレーションブログ

Slackの利点

Slackの利点としては、主に以下が挙げられます。

ソースコードのハイライト

開発現場では、ソースコードの一部分をチームメンバーと共有する場合が多くなると思います。

Slackは、ソースコードをハイライト付きで表示、記録、共有できるのため、開発現場と親和性が高いツールです。 LIGの制作現場でもそういった場面は多いため、この機能は重宝します。エンジニアから人気が出る理由の1つだと思います。

プレビュー機能

SlackではリンクURLや画像、PSDなどを貼ったときにプレビューしてくれる機能があります。ChatWorkでは直接画像をアップロードしないとプレビューできないので、これはかなり重宝します。

channelという概念

通常のチャットツールはグループごとで1つのチャットルームを使いますが、Slackではトピックごとにチャットルームが分かれます。これを「channel」と呼びます。
トピックごとに会話をしていることで話の流れを追いかける必要が無くなるため、個人的には好きな概念です。

APIが充実

SlackはAPIがかなり充実しており、さまざまなツールと連携させることが可能です。

実例については、こちらの記事「SlackとRedmineを連携し、登録したチケットの更新を通知する方法」などをご参照ください。

Hubot

HubotはBot作成用のフレームワークで、「フューボット」と読むそうです。Adapter(アダプター)とScript(スクリプト)の2つの構成要素があります。

Adapter

Botを利用するチャットツールとの接続を司るロジックです。
Adapter単体で誰かが作って公開されているものを、部品を追加する感覚で自分のHubotに取り込んで利用することができます。

  • Slack Adapter
  • ChatWork Adapter
  • Hipchat Adapter
  • Twitter Adapter

など、主要なチャットツールのアダプターは公開されております。それらを使うことで、難しい認証周りの処理を気にせずとも連携することができます。

Script

Adapterはチャットツールとの接続部分でしたが、ScriptはBotの機能部分になります。Adapterと同様に機能ごとにScriptを作り、Script単体で公開したり、誰かが公開しているものを自分のHubotに取り込むことができます。

Bot戦国時代に終止符

これまでのBot作成はチャットツールとの接続ロジック(Adapter)と機能(Script)が1つになっていましたが、それをHubotで作ることでそれぞれの機能を細分化することができるので、機能拡張が容易になります。

HubotとSlackの組み合わせの良さは、SlackのAPIの充実度に起因するところが大きい気がします。ChatWorkのAPIはプレビュー版ということもあり、そのようなBotを作るのにはまだ適していないのが現状ですね。

まとめ

Hubotの登場で、チャットツールとBotに新たな使い道が生まれたと思っています。今後はさまざまなチャットツールがHubot連携で効率化されていくのではないでしょうか。

本当はSlackを実際に作るところまで書きたかったのですが、長くなってきたので今回はここまでにしたいと思います。開発編をお楽しみに!

それでは、また!


この記事を書いた人

のびすけ
のびすけ バックエンドエンジニア 2014年入社
岩手から上京してきました。

ギークハウスを経て、現在は0円シェアハウスに住んでいます。

好きなスポーツはフットサル/雪合戦/わんこそばです。

2015年は東京Node学園で登壇してみたいです。

・milkcocoa公認エバンジェリストになりました。(https://mlkcca.com/)
・gihyo.jpで記事書いてます (http://gihyo.jp/dev/feature/01/milkcocoa-baas)
・html5experts.jpで記事書いてます。(https://html5experts.jp/n0bisuke/)