Aptpod Advent Calendar 2018 14日目の記事です。
CTO の梶田です。
今回初めての試みとして、会社(アプトポッド) で アドベントカレンダーをやってみたという感じなのですが、
みんなちゃんと期日通りに埋めてくれて偉い!
まだまだ書ける人が少なくて4記事書く猛者もいて素晴らしい。
今までは、会社としてあまり公にはできてなかったですが、これに限らず、できる範囲で広げていく・続けていくことができればと思ってます!
さて、自分としては、最後の方に予約して余裕持っていたのですが、
埋まらない!?といことだったのでここで入れてみました。
まず最初の記事としては、Slackネタをゆるーく書いてみようと思います。
背景
弊社の中でのコミュニケーションハブとして担っているのがSlackで
コミュニケーションだけでなくアプリケーションとつないだり、監視したり等々、
なくてはならない存在となっています。
流行る前から使っており、けっこう経つのですが、
人や案件/プロジェクト/製品が増えるにあたり、チャンネルがどんどん増え
けっこう辛い状況となってきました。。。
よくある話ですね。。。(汗
モチベーション / きっかけ
課題解決!というか
何がどうなってるかわからない
ということをちらちら聞いていたので
Slackに #timeline channelをつくった話
記事を参考に前から作ってたHubotの応用で簡単に
全体として俯瞰して時系列で眺める用にPublicのチャンネルを集約するbotを作って導入してみました。
古い記事でslackのAPIも新しくなっていたので遊んでみたい思いもあり。。。気分転換にやってみた感。。
他の記事も ↓参考 に
導入して
導入して1年以上経ちますが、1/3ぐらいにはみてもらえているようです。
- 気になる発言を拾うことができた
- 知らなかったチャンネルにJOINできた
- スレッドを拾うことができた
という声も聞くし、自分としてもTwitter好きなので便利だーという感じです。
全体の緩い把握と球拾いにイイですね!
timelineの実際はこんな感じ↓
いろんなチャンネルから時系列に並ぶ
その他
Tips系を
Hubot実装Tips
一応少しだけ書いとこう
botのプロファイル画像取得
チャンネルのメッセージを拾ってメッセージまとめる部分で
module.exports = (robot) ->
robot.hear /.*?/i, (msg) ->
channel = robot.adapter.client.rtm.dataStore.getChannelGroupOrDMById(msg.envelope.room).name
channel_url = process.env.SLACK_URL_BASE + msg.envelope.room
message = msg.message.text
username = msg.message.user.name
user_id = msg.message.user.id
user_image = ※msg.message.user.slack.profile.image_48
...
※部分はユーザーだと取れるがbotだとImage取れないので
user_image = robot.adapter.client.rtm.dataStore.bots[msg.message.rawMessage.bot_id].icons.image_48
botはこんな感じで取る
メッセージの最後に対象のチャンネルを付与する
message += "%0A(at %23#{channel} )"
構築Tips
- 初期のモチベーションがお金かけないだったので以下のAddonを利用
- Herokuの無料枠でどうやるか
Addon
- Hubot使うためにRedis必要なので
- 常時起動はお金がFreeプランではできないのでbotを2:00〜8:00までは寝るようにする(健全!?)
(おまけ)利用Tips
- チャンネルのリンクから該当箇所に飛んでしまうとどこまで読んだかわからなくなる。。。
->
-
リンクで飛ぶ前に
Star
押してお気に入り(timelineチャンネル上のメッセージ) -
リンクで飛ぶ
-
お気に入り一覧からJump でもとに戻る
とりあえず時間が経っても違うチャンネル行ったりしても戻れますね
で役目を終えたらお気に入り外せばよい
今後
timelineをカテゴリ分けたり、集計したり。。。便利/解決できることはやりたい!
という思いはある。。
できれば
参考
Slack上にTimelineを形成して全チャンネルの発言をゆるく眺める