PixelaでSlackにおける自分の発言数を記録する

githubでお馴染みのコミット数に応じて頻度が色付けされるグラフを任意の数字で作れる Pixela というサービスをリリースされた時点から知って、何か試してみたいなと思っていたので、Slackの自分の発言したメッセージ数を記録してみた。

こんな感じになる

まずは、前提としてPixelaのGetting Startedを完了させてユーザー登録とグラフの作成が完了しているとします。*1実際にPixelaに記録する方法として以前自分が作ったSlack全チャンネル眺めるくん ( slack-cli-stream - npm )に特定のユーザーの発言のみを表示対象にするオプションとメッセージ検知をトリガーにhookして任意のコマンドを実行できる様に実装してみています。インストール自体はnpmに登録しているので

$ npm install slack-cli-stream

で完了するはず。壊れていたらごめんなさい。

インストールした後、以下の様なYAMLを準備します。tokenはSlack API呼び出し用、hookは --hook オプションを付けたときに実行したいコマンドを記載するので、hookにはhook毎にPixelaに対して呼び出し毎に数値をインクリメントできる様にcurlコマンドでインクリメントのAPIを呼び出す記述を書きます。

token: xoxp-*****-*****-*****-*****
hook: curl -X PUT https://pixe.la/v1/users/hideack/graphs/slack-message/increment -H 'X-USER-TOKEN:******' -H 'Content-Length:0'

上のYAMLを準備して下の様にオプションを指定してターミナルで起動させておきます。*2

$ slack-cli-stream -u terry -s ~/.slack.yaml --hook

そうすると、Slack上の自分の発言( -u オプションで指定したユーザ ) だけがターミナルに流れていく様になって、且つメッセージ受信のタイミングでYAMLに書いたコマンドをフックしてくれることから、YAML中で指定したコマンド(curlでPixelaのAPIを叩く)が実行されるのでそのタイミングでPixela側に反映されていきます。

ある程度数字貯めた後眺めると、この日Slackでたくさん喋ったなとか一日中席外していたな。とか振り返れるかなと思ったりしています。一応このブログのサイドバー(スマホであればフッタ)に表示させてみているのでグラフに更新がなかったら何かあったと思ってください(!)

今回は自分自身の発言数を記録したのですが、もう少しだけ機能足せば自分が観測している範囲のSlackでの :+1: の数を記録していって良い話題が多かったなとかも観測できそうだなと思ったりしています。

f:id:hideack:20181202102932p:plain
起動させた様子

f:id:hideack:20181202102810p:plain
記録された様子。一週間試してみたので既にいくつか記録されてる。

*1:ユーザー登録とかもAPIで完結してるのがとてもよいと思った。こういうサービス作ってみたい。

*2:弊社で稀に生じるSlack IDとソーシャルで使ってるIDが異なる問題によりSlackで指定するIDとPixelaで取得したIDが異なる

(Visited 1 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です