BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【Slack】リアクションしてくれたユーザを特定する!

はじめに

こんにちは!
(株)BFT インフラ女子(?)のやまぐちです。

みなさん、Slackというメッセージアプリを使ってますか?
弊社では社内のコミュニケーションツールとしてSlackが導入されており、メール文化だった頃から比べるといろいろな人との交流がしやすくなったと感じています。

Slackはただメッセージのやり取りだけに使用するわけではありません。例えば飲み会の日程を
① 9/1
② 9/3
③ 9/5
と提示しておいて、数字でリアクションしてもらう、という機会も増えました。

スケジュール調整アプリを使っていた以前と比べ、Slackではその場ですぐに&文章を書かなくても意思表示ができるので、回答率はかなり上がっていると感じます。

ただ、この使い方をしたとき、リアクションしたユーザの確認が面倒なんです。
それぞれの絵文字をマウスオーバーして、リアクションした人の名前を確認して、別のテキストに書き込んで…を繰り返します。

また、リアクションしたユーザ数が多くなると「その他」と省略されてしまい、誰がリアクションしたかわかりません

ということで、リアクションしたユーザを確認し、ユーザをExcelで確認する方法をまとめました!

リアクションしてくれたユーザを特定する!

前提条件と構成

本記事ではすでにお使いのSlackのワークスペースAPIトークンを取得するAppがインストールされており、そのAppでトークン情報を確認できることを前提としています。APIトークンを取得するAppがない or わからない場合は、ワークスぺース管理者へ確認してください。

また、リアクションしたユーザはSlackのメンバーIDで値が返ってきます。数人であれば一人一人確認して対応できますが、大人数の場合はワークスペース管理者へ連絡し、ユーザ一覧をもらうとよいと思います。

それでは順に確認してみましょう。

「reactions.get」APIで情報を取得

Slackで用意されているAPIのひとつにリアクション情報を取得するAPIがあります。チャンネルと投稿時間でアイテムを指定して、そのリアクション情報を取得します。

reactions.get method | Slack

トークン情報はワークスペース管理者から教えてもらうとして、アイテムを特定する「チャンネルID」と「タイムスタンプ」をSlackから確認します。

アイテムの右上、その他をクリックします。

[ リンクをコピー ] を押して、テキスト等に貼り付けます。チャンネルIDとタイムスタンプの情報は以下の通りです。2パターンあり、上の例の場合はタイムスタンプでドット「.」を下6桁の前に入れる必要があります。

コピーしたリンクが例の上のURLの場合は、
チャンネルID: C03GEPU0LFR
タイムスタンプ: 1690326238.036419(ドット「.」を入れる)

コピーしたリンクが例の下のURLの場合は、
チャンネルID: C04BFE6EU3F
タイムスタンプ:1693444641.211129

として「reactions.get」APIに値を入れ、「Test method」を押すと、右側「API response」に結果が表示されます。

結果をテキストに保存、Excelで整形

リアクションの情報は、message.reactionsに絵文字ごとのリアクションしたメンバーIDで格納されています。

まずはこの情報をExcelで確認できるようにします。
右側「API response」に表示された結果をコピーし、テキストファイルに貼り付けて保存します。
次にExcelを起動し、[ データ ] タブ、[ データの取得 ] - [ ファイルから ] - [ JSONから ] を選択、先ほど保存したテキストファイルを指定し [ インポート ] を押します。

Power Query エディターが起動します。[ message ] の [ Record ] のリンクを開くとmessageの内容が展開されます。

同じ要領で [ reactions ] の [ List ] を開きます。

この状態で左上の [ テーブルへの変換 ] を押し、そのまま [ OK ] で閉じます。

[ テーブルへの変換 ] を押したことで下図のように [ Column1 ] の右側に展開できそうなアイコンが出現します。そのアイコンを押し、必要なカラムを選択(ここではcountのチェックを外しています)し、 [ OK ] を押します。

さらに、[ Column1.users ] の右側の展開アイコンを押すと、アイコンとリアクションしたユーザが1行ずつ表示されます。

これで準備は完了です。[ ホーム ] タブの [ 閉じて読み込む ] を押すと、ワークシートが追加されます。

メンバーIDの情報からリアクションした人の名前を取得

さて、ここまででリアクションした絵文字とユーザがExcelの一覧になりました。実際に誰がリアクションしたのかを見える化するために、メンバーIDをユーザ名に変換します。

リアクションした人の名前を確認① Slackから確認

人数が少ない場合は一人一人確認します。
Slackでユーザ名のリンクを押すとプロフィールが表示されます。縦三点リーダーから、[ メンバーIDをコピー ] を押し、先ほどのExcel別シートに貼り付けます。

あとはインポートしたシートでメンバーIDの次の列にVLOOKUP関数を入れて検索するだけです。例えば以下のように、[ Sheet1 ] シートにメンバーIDとユーザ名を記載しておき、[ reaction確認 ] シートから参照して値を入れます。

リアクションした人の名前を確認② ワークスペース管理者からユーザリストをもらう

一気にメンバーID情報を取得するにはワークスペース管理者からユーザ一覧のCSVをもらいます。

CSV文字コードUTF-8のため、Excelでそのまま開くと文字化けします。一旦テキストで開き、[ 名前を付けて保存 ] から、BOM付きで保存します。Windowsのメモ帳だと以下のように保存時のポップアップ画面で [ エンコード ] を開き、 [ UTF-8(BOM付き) ] を選びます。

サクラエディタの場合は、[ BOM ] にチェックを入れて保存します。

ユーザのリストには、メールアドレス、氏名、表示名など複数の情報がのっています。情報を別ワークシートにコピーし、「SlackからメンバーIDの確認」で記載したのと同じ要領で、必要な情報を表示させます。

これで、誰がどんなリアクションをしたか、を確認できるようになりました!

終わりに

メール文化が衰退し、文章を書く機会がどんどん減ってきました。
リアクションだけで意思を伝えられるSlackの利点を活かし、より効率的に質の高いコミュニケーションを目指したいと思います。

以上、ここまで読んでいただきありがとうございました~ ^ ^