Slackのメッセージを一括削除したいのでslack-cleaner2を使った話
Slackのメッセージを消したいのでslack-cleaner2を使った話
動機
Slack側の設定手順
- https://api.slack.com/ にログインして、管理しているSlackのワークスペースのbotユーザーにトークンを発行する
- botユーザーへのトークンの発行方法とかはググってください
- botユーザーに必要なpermission scopeに関しては、以下のREADMEにあるので読んで設定する
https://github.com/sgratzl/slack_cleaner2#user-token-scopes-by-use-case
すると以下のように見えるはず
- user oauth tokenとbot oauth tokenがあるのだが、普段botとして稼働させる方にはbotのトークンを使用して、管理用のトークンにuser oauth tokenを使えばいいのではと思った
インストール手順
$ python --version Python 3.6.10 $ pip install slack-cleaner2
メッセージの削除
$ python Python 3.6.10 (default, Aug 22 2020, 00:49:22) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from slack_cleaner2 import * >>> // トークンを設定 >>> s = SlackCleaner('xoxp-***') >>> >>> s.users ワークスペースのユーザーを全て出す [xxx, xxx...] >>> [msg for msg in s.c['YOUR CHANNEL NAME'].msgs(with_replies=True)] チャンネルのメッセージを全て出す >>> for msg in s.c['YOUR CHANNEL NAME'].msgs(with_replies=True): ... msg.delete() ... チャンネルのメッセージを全部消す ..........
素晴らしい