LoginSignup
2
0

GASでSlackの設定管理【Vol.1 ユーザ一覧取得】

Last updated at Posted at 2023-09-05

背景

Slackを全社導入し、増えてくるユーザ。
そうなってくると必然的に管理しないといけないよね。。。
ページングなしで、一覧でアカウントを見れるものないかな〜

ないなら、どうする? そう! 作っちゃおう!

やったこと

  • GAS(GoogleAppScript)でSlackのユーザを取得
  • ユーザ情報の書き出し

GAS(GoogleAppScript)でSlackのユーザを取得

対象のエンドポイント/api/users.list
※詳しくはこちら

  const token = "{Slackのトークン}";
  let options = {
    "method": "get",
    "contentType": "application/x-www-form-urlencoded",
    "payload": {
      "token": token
    }
  }
  const url = 'https://slack.com/api/users.list';
  let response = UrlFetchApp.fetch(url, options);
  let jsonResponse = JSON.parse(response);
  console.log(jsonResponse.members);

ユーザ情報の書き出し

以下の情報がレスポンスとして取得可能

        {
            "id": "W012A3CDE",
            "team_id": "T012AB3C4",
            "name": "spengler",
            "deleted": false,
            "color": "9f69e7",
            "real_name": "spengler",
            "tz": "America/Los_Angeles",
            "tz_label": "Pacific Daylight Time",
            "tz_offset": -25200,
            "profile": {
                "avatar_hash": "ge3b51ca72de",
                "status_text": "Print is dead",
                "status_emoji": ":books:",
                "real_name": "Egon Spengler",
                "display_name": "spengler",
                "real_name_normalized": "Egon Spengler",
                "display_name_normalized": "spengler",
                "email": "spengler@ghostbusters.example.com",
                "image_24": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
                "image_32": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
                "image_48": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
                "image_72": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
                "image_192": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
                "image_512": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
                "team": "T012AB3C4"
            },
            "is_admin": true,
            "is_owner": false,
            "is_primary_owner": false,
            "is_restricted": false,
            "is_ultra_restricted": false,
            "is_bot": false,
            "updated": 1502138686,
            "is_app_user": false,
            "has_2fa": false
        },

おまけ

  • Slackのユーザって論理削除だとレスポンスを見て初めてしった。
  • real_nameとユーザIDを一覧管理しておくと何かと便利
    • GASでメッセージ送る時のメンション作成はユーザIDが必要
    • チャンネルに一気にユーザを追加するとき、real_nameの列をコピペすれば一発

最後に

GASでめんどくさいを自動化してハッピーライフ✨

参考

GASとは
Slackのユーザ一覧取得

2
0
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
2
0