Let’s clean whole messages of a channel by little programatic way.
- At first, you should get slack legacy api developer token : https://api.slack.com/custom-integrations/legacy-tokens
* slack has changed their api authentication. you should use legacy-tokens to use legacy integration library.
- And use ‘slack-cleaner’ when you like python : https://github.com/kfei/slack-cleaner
- Or use ‘delete-channel-messages.js when you like nodejs : https://gist.github.com/firatkucuk/ee898bc919021da621689f5e47e7abac
Using python and ‘slack-cleaner’
- You have to have installed python and pip by yourself.
- install slack-cleaner via pip
pip install slack-cleaner
(please do it with 'sudo' when you got Permission denied error)
- get the target channel name to delete
- verifying the expected run
You can verify the result of ‘slack-cleaner’ running
slack-cleaner --token=[your token here] --message --channel general --user "*"
- after verifying, let’s execute delete by adding ‘perform’ option.
slack-cleaner --token=[your token here] --message --channel general --user "*" --perform
Using node and ‘delete-channel-message.js’
- You have to have installed node by yourself.
- download ‘delete-channel-message.js’
wget https://gist.githubusercontent.com/firatkucuk/ee898bc919021da621689f5e47e7abac/raw/8c3b420fe3e334d740957a229937cdcbd10c0063/delete-channel-messages.js
(You can download this file via web browser. Just do as your way)
- set the target token and target channel in .js file.
Before edit the .js file, you should know the your channel id (not channel name) by browsing your target channel on the browser.
If your goto your target channel in browser, there will be shown the hidden channel id.
When you go to the your target channel by these url :
>> https://yourcompany.slack.com/messages/general/
It will be changed like this :
>> https://yourcompany.slack.com/messages/[channel id hash value]/…
You should use the this [channel id hash value].
// CONFIGURATION #######################################################################################################var token = 'your api token here';
var channel = 'your channel id hash value';
- and run it with node.
node delete-channel-messages.js
(You may get 'TypeError: Cannot read property 'length' of undefined' when you typed 'channel name'. Please set the correct 'channel id hash value' to fix it.)
That’s it.
My prefer is node one.
Because the python one was service denied after some messages deleted.
It caused by not enough delay time. I maybe send pull request for it.
The node one works fine.
Thanks for reading.