SlackAPIでユーザーグループIDを取得し確認する方法(GASサンプル付)
Slackのボットを開発していると、チャンネルIDの他に有料版で利用可能なユーザーグループのIDを確認したいケースがあります。
そこで、SlackAPIリクエストでユーザーグループIDの取得方法をGoogle Apps Script(GAS)のサンプルを使って解説します。
チャットツールSlackはAPIによるボット開発が盛ん
テキストチャットツールとして有名なSlackには、エンジニアを中心に人気を集めています。
Slackの特徴として、他のチャットツールに比べてAPIが充実しています。
そうしたSlackAPIを活用し、様々なボットを開発したりするなど、Slackアプリの開発が盛んに行われています。
例えば、サーバーのエラーメッセージをSlackに通知したり、スケジュールされたタイミングでスクレイピングした結果をSlackに投稿したりなどです。
Slackがテキストコミュニケーションの中心となっていると、Slackに色々な情報を集めることが効率的になります。
各職場の業務に応じ、SlackAPIを活用して、ボット開発する人たちも多数存在しています。
ユーザーを束ねるユーザーグループ(有料版Slackのみ)
無料版のSlackにはありませんが、有料版には「ユーザーグループ」機能が搭載されています。
ユーザーグループというのは名前の通り、Slackユーザーのグループを表したものです。
メールで言うところの、部署やチーム用のセキュリティーグループ(チーム用メーリングリスト)に相当します。
メリットとしてはユーザーグループ宛にメンション付きのSlackチャンネル上で投稿すると、ユーザーグループに含まれる個々のユーザーに通知することができます。
個人ユーザーの場合は、異動が発生すると担当が変わり、宛先を変更しなければなりません。
しかし、ユーザーグループは異動があっても所属ユーザーを修正すればよく、宛先はそのままです。
こうした点での利便性から、有料版Slackを使っている会社や組織ではユーザーグループを活用しています。
ユーザーグループのIDはウェブやアプリ上で確認不可
前述したSlack APIを利用したボット開発では、有料版Slackだと、ユーザーグループ宛にメンションを送るボットを作成したいケースがあります。
しかし、ユーザーグループはSlackのウェブ管理画面やアプリ上でも、IDを確認することができません。
SlackではユーザーのIDやチャンネルのIDはウェブ&アプリで確認できるようになっています。
しかし、ユーザーグループのIDは、上記で提示したユーザーIDやチャンネルIDの調べ方をしても表示されません。
実は有料版Slackで利用可能なユーザーグループは、ウェブやアプリ画面で確認できない仕様となっています。
Slack APIリクエストでのみユーザーグループIDが取得可能
では、SlackのユーザーグループIDを取得することはできないのでしょうか。
実はSlackのユーザーグループIDは、Slack APIをリクエストすることで取得することができます。
Slack APIでは「https://slack.com/api/usergroups.list」というAPIリクエストを実行すると、ユーザーグループIDが出力されます。
なお、ユーザーグループの読み取りにはボットのパーミッション(権限)を事前に設定する必要があります。
Slack APIのパーミッション画面で「usergroups:read」の権限を追加しないと、APIリクエストがエラーするので注意しましょう。
このようにユーザーグループIDを取得するにはSlack APIによるリクエストのみが有効な方法です。
GASによるSlackAPIリクエストでユーザーグループID確認
Google Apps Script(GAS)でSlackAPIの「https://slack.com/api/usergroups.list」をリクエストして、ユーザーグループIDを確認するサンプルコードを紹介します。
GASはGoogleが提供するJavascriptライクなスクリプトサービスです。
サーバレスでスケジュール実行やトリガー実行などが無料で利用でき、お手軽に使えてとても便利です。
なお、サンプルコードを実行する前に、当該のSlackワークスペースで動作するSlackAPIのトークンを発行しておく必要があります。
GASでSlack APIをリクエストし、ユーザーグループIDをログ出力するサンプルコードは以下の通りです。
function getSlackUserList() {
//SlackAPIのtokenを設定
let slack_taken = "************************";
//usergroupの情報を取得するAPIリクエストURLを設定
let url = "https://slack.com/api/usergroups.list";
//APIリクエストのPOSTで必須のパラメータをJSON形式で指定
let json = {
'token' : slack_taken
};
//HTTP POSTを行うためのメソッドと、パラメータを設定
let options = {
'method' : 'post',
'payload' : json
};
//URLフェッチを実行し、データを取得し、ログ出力
let response = UrlFetchApp.fetch(url,options).getContentText();
console.log(response);
}
実行すると、JSON形式でユーザーグループの情報を取得でき、その中にユーザーグループIDが格納されています。
{
“ok": true,
“usergroups": [
{
“id": “S01T5*******",
“team_id": “チームID",
},
{
“id": “S01TU*******",
“team_id": “チームID",
},
“user_count": 0,
“channel_count": 0
}
]
}
※上記のJSONの赤文字部分。一部情報を割愛しています。
まとめ・終わりに
今回、Slack APIを利用して、有料版Slackの機能であるユーザーグループのIDを取得・確認する方法を紹介しました。
ユーザーグループは有料版Slackのみの機能のため、利用しているユーザーは少ないですが、メールのセキュリティーグループのようにSlack上で管理できて便利です。
しかし、有料版Slackの利用ユーザーのみしか使わないので、ネット上での情報が少ない状態でした。
Slackのボットでユーザーグループを活用するために、ユーザーグループIDを取得するSlackAPIのリクエスト方法をGoogle Apps Script(GAS)のサンプル付きで解説しました。
GASなら無料で利用できるので、APIをリクエストするのにも気軽に利用できます。
ぜひ、有料版SlackのユーザーグループのIDを知りたい場合は、今回紹介した方法を試してみて下さい。
ディスカッション
コメント一覧
まだ、コメントがありません