問題
Slackではメッセージに対して絵文字でリアクションを投稿できる。他の人も同じリアクションをした場合には、横の数字が増えていく。
誰がリアクションしたかは、PCではマウスオーバー、SPでは長押しすれば表示される。
しかし50人以上になった場合は and others
と省略されてしまい、完全なリストを取得することができない。 (HTMLソースやXHRを見ても無理)
解決策
reaction.get APIを使おう。
取得方法
以下は簡易的にWebから取得する方法。プログラムからAPI叩けるならそっちで。
- メッセージのリンクを取得
- 時間の部分を右クリックとかメニューの
Copy link
とか
- 時間の部分を右クリックとかメニューの
- URLから
channel
とtimestamp
を読み解く- URL形式は
https://<team>.slack.com/archives/<channel>/p<timestamp>
- URL形式は
-
reaction.get Tester にパラメータを設定
-
token
: 所属チームを選択 未発行の場合は適宜発行する -
channel
: 2で読み解いたもの -
timestamp
: 2で読み解いたものに小数点を追加 (1234567890123456
→1234567890.123456
) -
full
:true
- 他は空欄でOK
-
-
Test Method
をクリックすると結果が出てくる-
message.reactions.0.users
辺り - 但し
U1234567890
みたいな形式のみで表示名は取れない
-
- 必要に応じて users.info なり users.list 使って
real_name
を取得
あとがき
リアクション使ったアンケートをしたら、50名超えた分の名前が見れなくて焦ったので書いた。