Manage your Slack community by making read-only channels. Only admins can post to read-only channels, other users' messages get deleted and the user gets a message from the bot.
- Create a new classic Slack app for your workspace at https://api.slack.com/apps?new_classic_app=1 .
- Click App Home, click the Add Legacy Bot User button, and give your bot a username and name.
- Click OAuth & Permissions . Under Scopes click Add an OAuth Scope and add the following
scopes:
bot
- Allow users to interact with the bot (needed to message users)chat:write:bot
- Allow deleting user messages
- On the same page click on the Install App to Workspace button and authorize it to connect to your workspace. Note that the account that authorizes the bot must be able to delete the messages of other users. This is usually just the workspace owner/admin.
- Back on the OAuth & Permissions page, copy the two access tokens (one should start with
xoxp-
and the other withxoxb-
). - Invite the bot to all the channels you want to make read-only.
- Install the bot using
pip
(pip install slack-read-only-bot
) - Create a config file based on the following example:
app_token: xoxp-...
bot_token: xoxb-...
delete_msg: The channel you just posted to is read-only, only admins can post to it.
admins:
- admin1
- admin2
channels:
- channel1
- channel2
- Run
slack-read-only-bot --config <path to file>
to run the bot and test that it works as expected. - [optional] Configure your system to run
slack-read-only-bot
as a service using something likesystemd
to ensure that it runs at startup, restarts if it crashes, etc. See slack-read-only-bot.service for an example/template.
Make sure you map the config file from your host instance to /usr/src/app/config.yml