I've been trying to get a list of all "groups" in my Slack team. However, even with admin privs, groups.list
only provides the groups that the token owner's account belongs to.
The closest solution I've seen in my research involves getting a bot to sit in the channel. The bot's membership allows it to report on the channel, but then there's the logistical problem of getting the bot into every private channel, despite the fact that we can't list them programmatically.
The code I've used to dig up private channel listings:
import requests
import json
token = '...'
r = requests.post('https://slack.com/api/groups.list', data={'token': token, 'exclude_archived': 1})
if r.ok:
privatechannels = { c['id']: c['name'] for c in json.loads(r.text)['groups'] }
print(privatechannels)
slacks privacy policy does not support this.
which is the closest thing to getting access to private channels from which you are not part of, but will require a written letter...here for more details
If you really need to monitor all private channels (and DMs) on your Slack workspace in real time there is another approach:
conversations.list
conversations.history