2015-09-28 30 views
47

Attualmente abbiamo un canale Slack con messaggi ~ 8K tutti provenienti dall'integrazione Jenkins. C'è un modo programmatico per cancellare tutti i messaggi da quel canale? L'interfaccia web può eliminare solo 100 messaggi alla volta.Slack clean tutti i messaggi (~ 8K) in un canale

Grazie in anticipo!

risposta

42

Ho scoperto subito che qualcuno ha già creato un helper: slack-cleaner per questo.

E per me è solo: il comando slack-cleaner --token=<TOKEN> --message --channel jenkins

+0

Un'altra opzione viene da [npm] (https://libraries.io/npm/slack-cleanup), non ho ancora provato. – Hann

+0

slack-cleaner funziona alla grande! – mvelay

+0

Dove posso trovare il mio token e il mio canale? – kk78626

12

predefinita pulita non ha funzionato per me dare seguente errore:

$ slack-cleaner --token=<TOKEN> --message --channel <CHANNEL> 

Running slack-cleaner v0.2.4 
Channel, direct message or private group not found 

ma in seguito ha lavorato senza alcun problema per la pulizia dei messaggi bot

slack-cleaner --token <TOKEN> --message --group <CHANNEL> --bot --perform --rate 1 

o

slack-cleaner --token <TOKEN> --message --group <CHANNEL> --user "*" --perform --rate 1 

per pulire tutti i messaggi.

Uso il limite di velocità di 1 secondo per evitare l'errore HTTP 429 Too Many Requests a causa del limite di velocità api lenta. In entrambi i casi, il nome del canale è stato fornito senza # segno

-1
slack-cleaner --token=<TOKEN> --message --channel jenkins --user "*" 
9

!! UPDATE !!

come @ niels-van-reijmersdal meted in commento.

This feature has been removed. See this thread for more info: twitter.com/slackhq/status/467182697979588608?lang=en

!! FINE AGGIORNAMENTO !!

Questa è una bella risposta di SlackHQ in Twitter e funziona senza elementi di terze parti. https://twitter.com/slackhq/status/467182697979588608?lang=en

You can bulk delete via the archives (http://my.slack.com/archives ) page for a particular channel: look for "delete messages" in menu

+1

Basta pubblicarlo, funziona solo per i canali e non per i messaggi diretti. – TheRodeo

+1

Questo elimina solo gli ultimi 10 messaggi al momento – MatPag

+1

No, ho usato per cancellare molti messaggi con questo metodo. Era circa 100 o qualcosa. – Braggae

10

Ho scritto uno script nodo semplice per l'eliminazione dei messaggi dai canali pubblici e privati. Puoi modificarlo e usarlo.

https://gist.github.com/firatkucuk/ee898bc919021da621689f5e47e7abac

Prima modificare il proprio ID token e canale. Quindi eseguire lo script:

node ./delete-channel-messages 

si può imparare il gettone dal seguente URL:

https://api.slack.com/custom-integrations/legacy-tokens

anche ID canale è scritto nella barra broweser URL.

https://mycompany.slack.com/messages/MYCHANNELID/

script elimina 1000 messaggi in un'unica seduta.

5

Per chiunque altro che non ha bisogno di farlo programmatico, ecco un modo veloce :

(probabilmente solo per utenti a pagamento)

  1. Aprire il canale web o desktop app e fare clic sul cog (in alto a destra).
  2. Scegliere "Opzioni aggiuntive ..." per visualizzare il menu di archiviazione.
  3. Selezionare "Imposta il criterio di conservazione dei messaggi del canale".
  4. Impostare "Mantieni tutti i messaggi per un numero specifico di giorni".
  5. Tutti i messaggi precedenti a questa ora vengono eliminati definitivamente!

Io di solito impostare questa opzione a "1 giorno" per lasciare il canale con un certo contesto, poi torno nelle impostazioni di cui sopra, e impostare E 'politica di conservazione torna a "default" andare continuare la loro memorizzazione da ora in poi.

Problemi correlati