Slack でチャンネル内のメッセージを一括削除する

Slack で特定チャンネル内のメッセージを一括で削除する方法。以下は Mac の Terminal で実行した。

(1)pip をインストールする。

mac に pip をインストールする|カメラのちプログラミング♥ところによりカフェ
https://4to.pics/article/post/54

(2)slack-cleaner をインストールする。

$ pip install slack-cleaner

(3)token を取得する。

Legacy tokens | Slack
https://api.slack.com/custom-integrations/legacy-tokens

(4)以下のコマンドを実行(<TOKEN> 部分に3の token を、<CHANNEL> 部分にチャンネル名を入れる)。

$ slack-cleaner --token <TOKEN> --message --channel <CHANNEL> --user "*" --perform --rate 1

ただしこれでは、bot による自動投稿の内容が削除されない。そこで以下を実行する。

$ slack-cleaner --token <TOKEN> --message --channel <CHANNEL> --bot --perform --rate 1

プライベートチャンネルでも実行可能で、その場合 –channel を –group に書き換えて実行する。

ただし、日本語のチャンネル名だとエラーが出てしまう。一旦チャンネル名を英数字にして slack-cleaner を実行すればうまくいった。

参考:
kfei/slack-cleaner: Bulk delete messages and files on Slack
https://github.com/kfei/slack-cleaner

Slack、チャンネル内のメッセージの一括削除… – Qiita
https://qiita.com/zaoriku0/items/2cb8cfc53339ba98bd54

Slack clean all messages (~8K) in a channel – Stack Overflow
https://stackoverflow.com/questions/32824336/slack-clean-all-messages-8k-in-a-channel