Slack のユーザー一覧を取得せよ!
ってなお仕事が降ってきたものの、Slack のメニューとか探したど見当たらず。
これは API 使えってことなのかなぁ・・・使うんはいいけど、普通の非テックな会社だと厳しいんでは。
もっと高い料金プランだと出てくるのかな?
それとも、非テックでも Slack 使うような会社ならそれくらいいけるんだろうか。
API を使うそのまえに
ってわけで、いつも通り Perl でやります・・・が、やる前に API を利用できるようにする準備から。
こちらの記事が大変役に立つというか、そのまま進んでそのまま OAuth Token を入手することができました。
ありがたい。
WebService::Slack::WebApi
あとは、Perl の便利モジュールがうまいことやってくれます。
#!/usr/bin/env perl use strict; use warnings; binmode STDOUT, ":utf8"; use WebService::Slack::WebApi; my $ACCESS_TOKEN = 'xoxp-hogehogefugafuga'; my $slack = WebService::Slack::WebApi->new( token => $ACCESS_TOKEN ); my $users = $slack->users->list; # $users の中にユーザーの情報が入っているので、 # とりたい情報が気になる人は Data::Dumper で中を覗いてみる for my $member ( @{ $users->{members} } ) { # 削除済みユーザーや、bot も含まれているので除外する next if ( $member->{deleted} == 1 ) || ( $member->{is_bot} == 1 ); print "$member->{name}\t$member->{profile}->{display_name}\n"; }
あっさり。
2020-11-20 追記
依頼主もメンバー一覧とるのに API しかなさそうー、って言ってはいたんですが、slack のワークスペースの管理者であれば、確認方法があることを教えていただきました。
そりゃあるよなぁ!(テノヒラクルー
突然すみません。キーワード見てて見かけました。ワークスペースの管理者であれば、メンバーの管理画面から CSV 形式でユーザー一覧をダウンロードできますよー。あとはエクスポート機能の出力ファイルの中にも users.json というのが含まれます。
— Kazuhiro Sera (瀬良) (@seratch_ja) 2020年11月19日
ありがとうございます・・・って、bio 見たらこの方、slack のAPI SDK 作っておられるのですね・・・助かりました。
画面左上のワークスペース -> 設定と管理 -> メンバーを管理する、から確認することができました。