web-dev-qa-db-fra.com

Obtenez une liste de toutes les chaînes privées avec l'API Slack

J'ai essayé d'obtenir une liste de tous les "groupes" de mon équipe Slack. Cependant, même avec des privilèges d'administrateur, groups.list fournit uniquement les groupes auxquels appartient le compte du propriétaire du jeton.

La solution la plus proche que j'ai vue dans mes recherches consiste à faire asseoir un bot dans le canal. L'appartenance du bot lui permet de faire un rapport sur le canal, mais il y a ensuite le problème logistique de faire entrer le bot dans chaque canal privé, malgré le fait que nous ne pouvons pas les répertorier par programme.

Le code que j'ai utilisé pour rechercher des listes de chaînes privées:

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)
11
shaun m

pantalons politique de confidentialité ne prend pas en charge cela.

Le principe de confidentialité le plus fondamental que nous suivons est que par défaut, tout ce que vous publiez sur Slack est privé pour votre équipe. En d'autres termes, l'affichage des messages et des fichiers partagés au sein d'une équipe spécifique nécessite une authentification en tant que membre de cette équipe.

Le prochain plan Plus payé de la société comprendra une fonctionnalité facultative appelée Conformité aux exportations, qui permettra aux administrateurs d'accéder aux communications de leur équipe, comprenant des messages publics et privés.

ce qui est le plus proche d'avoir accès à des chaînes privées dont vous ne faites pas partie, mais nécessitera une lettre écrite ... ici pour plus de détails

6
glls

Si vous avez vraiment besoin de surveiller tous les canaux privés (et DM) sur votre espace de travail Slack en temps réel, il existe une autre approche:

  • Assurez-vous que chaque utilisateur de votre Slack fournit un jeton à votre application. Cela peut être fait par chaque utilisateur exécutant le processus d'installation OAuath pour votre application une fois. Cela créera un nouveau jeton pour chaque utilisateur, que votre application peut collecter.
  • Parcourez tous les jetons utilisateur actifs pour compiler une liste de toutes les conversations (canaux publics, canaux privés, messages directs, ..) avec conversations.list
  • Parcourez toutes les conversations existantes - en utilisant un jeton valide pour cette conversation - pour collecter tous les messages avec conversations.history
4
Erik Kalkoken