Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
8
Help us understand the problem. What is going on with this article?
@horimislime

chatbotで会社のSlackを監視する👀

More than 3 years have passed since last update.

これはトレタ Advent Calendar 201625日目の記事です。昨日はCTOの@masuidriveによるRailsでFoundation for Emails 2.0を使ってレスポンシブなHTMLメールを送るでした。

今日はSlackのちょっとした悩みを解決する便利botの紹介です。

Slackに関するちょっとした悩み

Slackはオフラインのコミュニケーションにとても便利ですが、個人的に不満に感じているところがあります。

例えば、いつの間にか知らないチャンネルができてる問題。会社で作っているプロダクトが多数にわたり、人数も増えてくるとSlackのチャンネルも増えてきます。業務上知っておきたいやりとりがされているチャンネルの存在を、かなり後になって知ることになってしまった・・・😫という経験がある人も居るんじゃないでしょうか。

こうした類のSlack上で起こっている出来事に気づけない問題は他にもいくつかあります。例えば誰かが便利なbotを運用し始めていても、そのチャンネルに参加してないと気づかない事があるでしょう。個人的にはカスタムemojiが増えたことに気づきづらいのもSlackに対する不満です。弊社では日々おもしろemojiが増え続けているので、こうした 物の最新動向にもキャッチアップしてきたいところです :eyes:

Real Time Messaging API

Slackではこうした 新しくチャンネルが作られた teamにbotが追加された 絵文字が追加された といったようなイベントをAPIで拾える仕組みが用意されています。Real Time Messaging API | Slackではかなり豊富な種類のイベントを取得できるようになっていて、更にWebsocketを利用してリアルタイムに新着イベントを受け取り、それに応じてプログラムで何かするといったことが可能です。

Screen Shot 2016-12-25 at 6.15.20 PM.png

botkitでSlack監視botを作る

howdyai/botkitを使えばRTM APIを使ったSlackイベントを監視するbotが簡単に作れます。例えば以下のような感じで特定のイベントに対するハンドラを設定しておくと、新しいイベントを検知してチャットに通知を書き込むなど好きな処理を実行できます。

bot.js
controller.on('channel_created', function(bot, message) {
  // botがjoinしているチャンネルに新しいチャンネル名を書き込む...
});

新しいチャンネルが作成されたらbotが通知してくれる仕組みは、サンプルコードを作って以下に公開しています。弊社のSlackチームでも#channel-notifyという部屋を作って密かに運用開始していますが便利です。簡単に動かせるようにしてある(はず)なので、使ってみたい人は是非。

horimislime/slack-new-channel-notifier: Notifies when new public channels are created.

Screen_Shot_2016-12-25_at_7_43_20_PM.png

まとめ

SlackのReal Time Messaging APIとbotkitを使ったchatbotについて紹介しました。一緒に働く仲間が増えるほど、Slack上でのやり取りも増えて見落とす情報も増えてきます。簡単なchatbotを作るだけでもこうした情報も拾えたりするので、ぜひ試してみてはどうでしょう。


これにてトレタ Advent Calendar 2016は終わりです。どれもとても面白い内容なので、もし見逃している記事があればチェックしてみてください!それでは。メリークリスマス :christmas_tree:

8
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
8
Help us understand the problem. What is going on with this article?