web-dev-qa-db-fra.com

Slack: Récupérer tous les messages

Je souhaite récupérer tous les messages envoyés dans le domaine de mon équipe. Bien que je préfère que les données soient reçues au format XML ou JSON, je suis capable de gérer les données sous n'importe quelle forme. 

Comment puis-je récupérer tous ces messages? C'est possible? Si non, puis-je récupérer tous les messages pour un canal spécifique?

27
marcusshep

Si vous devez le faire de manière dynamique via une API, vous pouvez utiliser la méthode channels.list pour répertorier tous les canaux de votre équipe et la méthode channels.history pour récupérer l'historique de chaque canal. Notez que cela n'inclut pas les DM ni les groupes privés.

Si vous devez le faire une fois, accédez à https://my.slack.com/services/export pour exporter les archives de messages de votre équipe sous forme de séries de fichiers JSON.

message archive export screen

20
seanrose

Ce script Python exporte tout vers JSON par une simple exécution: https://Gist.github.com/Chandler/fb7a070f52883849de35

Il crée les répertoires pour vous et vous avez la possibilité d’exclure des messages directs ou des canaux.

Tout ce que vous devez installer est le module Slacker, qui est simplement pip install slacker. Puis lancez-le avec --token='secret-token'. Vous avez besoin d'un jeton hérité, qui est disponible ici pour le moment.

11
vk1011

Pour ceux qui recherchent des téléchargements d’historique de messages directs, l’outil this node -/node vous permet de télécharger des messages à partir de DM et de MI en JSON et CSV. Je l'ai utilisé et cela fonctionne très bien.

10
wjagodfrey

Avec la nouvelle API de conversations , cette tâche est un peu plus facile maintenant. Voici un aperçu complet:

Récupération des messages d'un canal

La nouvelle méthode API conversations.history vous permettra de télécharger des messages à partir de chaque type de conversation/canal (public, privé, DM, groupe DM) tant que votre jeton y aura accès. 

Cette méthode prend également en charge la pagination vous permettant de télécharger un grand nombre de messages.

Résolution des identifiants en noms

Notez que cette méthode renvoie les messages au format JSON brut avec des ID uniquement. Vous devez donc appeler une méthode d'API supplémentaire pour résoudre ces ID en texte brut: 

Récupération de threads

De plus, utilisez conversations.replies pour télécharger des discussions dans une conversation. Les discussions fonctionnent un peu comme des conversations dans une conversation et doivent être téléchargées séparément. 

Consultez cette page de la documentation officielle pour plus de détails sur le filetage.

1
Erik Kalkoken