とりあえずの記録

実質的に同学科の人向けのナレッジまとめになりつつあります

とあるSlackチャンネルのメンバーを,まとめて別のチャンネルに追加する方法

#ch_alpha というチャンネルに300人が参加している状況で, #ch_beta にも同じメンバーを参加させたいときってありますよね.
5,6人くらいであれば手動でやるところですが,こうも多いと地獄です.

Spreadsheetなどで名簿のデータがあればそこからコピペすると楽ですが,そうでないこともあると思います.
Slackのエクスポートツールを利用して,簡単に登録する方法を見つけましたので紹介します.

フリープランでもできますが,その場合,出力元はパブリックチャンネルである必要があります.

#general からコピーすることで全員を追加することもできますね!

特定Ch.のメンバーをエクスポート

  1. エクスポートしたいチャンネルが存在するワークスペースの,"設定と権限" 画面を開きます.
    URLはこんな感じ.https://(文字列).slack.com/admin/settings
  2. 右上のほうにある,"データのインポート/エクスポート"を開きます.

    f:id:tamasan238:20210620124238p:plain

  3. "エクスポート"タブをクリック

    f:id:tamasan238:20210620124348p:plain

  4. 日付範囲をエクスポートする にて, "全履歴" を選択し,"エクスポート開始" をクリック

    f:id:tamasan238:20210620124719p:plain

  5. 準備ができ次第,Slackに通知が飛びます.
    指示に従って,.zipの出力ファイルをダウンロードしてください.

出力ファイルから,メンバー一覧を抽出

  1. 出力ファイルを解凍の上,任意のテキストエディタchannels.json を開きます.
    WindowsならVSCodeやメモ帳,MacならCotEditorあたりがおすすめです.
  2. WindowsならCtrl+F,Macなら⌘+Fで,コピー元のチャンネル名を検索します.
    表示位置に飛んだら,そのちょっと下にある
    "members": [
    の行と,それより上の行を全て消します.
  3. ちょっと下にスクロールすると,
    ],
    の行が出てくると思います.
    この行と,それより下の行を全て消します.
  4. 使っているエディタの置換機能を使い,
    " を無に置換することで " を消します.
  5. これでユーザーIDの一覧を得ることができました.
    Ctrl+A (⌘+A) で全選択,Ctrl+C (⌘+C) でクリップボードにコピーしておきます.

チャンネルにメンバーを追加

  1. メンバーを追加したいチャンネルのメンバー追加画面を開きます.
  2. 先ほどクリップボードにコピーしておいたものを,Ctrl+V (⌘+V) で貼り付けます.
    自動で参加させたいメンバーが表示されるはずです!
  3. "追加" を押せば完了です!

おわりに

プログラムを組んでAPIをごにょごにょして...という方法もありますが,1回だけでいいからそこまでするのは面倒,ということでどうにかできないか試行錯誤してみた結果です.

もしデータのエクスポート画面にたどり着けない方は,Slackワークスペースの管理者さんにお願いしてみてくださいね.

SlackAdminのみなさんの助けになれば嬉しいです.