LoginSignup
9
7

More than 5 years have passed since last update.

Slackで調整さん的なことをすると参加者確認が大変だったのでコードで解決してみた

Last updated at Posted at 2017-12-07

本記事は、Slack Advent Calendar 2017の8日目の記事です。


株式会社CyberZの木村です。この記事を書くきっかけは、先月末にあったこんなやりとりから生まれました。
slack1208.png

弊社では毎月末に締め飲み会というイベント(?)があり、その出欠がSlack上で問われたのでした。

ここのOKの人数でお店に予約するのです。Slack上で解決とは、なんとお手軽なのでしょう・・・!!

ちなみにこの投稿をしたのは俺じゃないです。(なのでモザイクいれときました!)


このように、お店の予約をとるまでは問題がなく、便利だなーと見ていたのですが、出席者も欠席者も多かったので、いざお店に向かう段になって「行くの誰だっけ?」問題が発生しました。

そうです。点呼する必要があるのです。

PCだとそれぞれのリアクションの上にマウスを持っていくと誰のリアクションかわかりますし、スマホだと長押ししてるとわかります。でも、すこぶる見づらいのです。

会社のSlackでその画面を出すと個人情報の嵐なので、とりあえず個人Slack作って同じ状態を再現してみました。


Screenshot_20171208-063459.png

Screenshot_20171208-063219.png

おわかりいただけるだろうか?


スマホのリアクション表示は、割と見やすいんですが、ユーザ名のところはリストではなく結合された文字列で表現されているので、人数が多いと区切りがわかりにくかったです。
なのでいつも見慣れているJSONかCSVの形で出力したいなぁと思いました。

Slackで特定の投稿のリアクションを見るのはAPI一発でできます。なんてヌルゲーなのでしょう・・・!!

スクリーンショット 2017-12-08 6.46.52.png
U88DPF001さんて誰ですの(´・ω・`)?

当日は時間もなかったのでここで諦めました。。。


SlackのAPIドキュメントに書かれているChannelとかUserとかは、IDだけ返ってくるんですね。
なので表示名や氏名(Full name)を知るためには、別途users.infoAPIを叩いて、ユーザ情報を取ってこなければならなかったのです。

なのでコードを書きました。

出来上がったものがこちらです。

APIトークンを環境変数SLACK_API_TOKENに指定して、第一引数にパーマネントリンクを指定するとつぎのようなJSONがとれます。

[{
    "reaction": "ok_woman",
    "users": ["yu0819ki", "yu0819ki_bbb"]
}, {
    "reaction": "no_good",
    "users": ["yu0819ki_aaa"]
}]

ああ、これで参加者がわかりそうですね!ね!!


このソースにはもうちょっと手を加えるつもり(Slackに投稿したり、CSV化したり、Webから使えるようにしたり)ですが、SlackのAPIの取り回しの勘所はこんなところです。

というところでよろしくご査収ください。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7