2015-09-28 4 views
47

Wir haben derzeit einen Slack-Kanal mit ~ 8K Nachrichten alle kommt von Jenkins Integration. Gibt es eine programmatische Möglichkeit, alle Nachrichten von diesem Kanal zu löschen? Das Webinterface kann nur 100 Nachrichten gleichzeitig löschen.Slack sauber alle Nachrichten (~ 8K) in einem Kanal

Vielen Dank im Voraus!

Antwort

42

Ich fand schnell heraus, dass jemand schon einen Helfer gemacht hat: slack-cleaner dafür.

Und für mich ist es nur: slack-cleaner --token=<TOKEN> --message --channel jenkins

+0

Eine andere Option kommt von [npm] (https://libraries.io/npm/slack-cleanup), habe es noch nicht ausprobiert. – Hann

+0

Schlafsack-Reiniger funktioniert super! – mvelay

+0

Wo kann ich meinen Token und Kanal finden? – kk78626

12

Standard sauber Befehl nicht für mich folgende Fehler geben funktionierten:

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

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

aber ohne Problem arbeitete im Anschluss an die Bot-Nachrichten zu reinigen

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

oder

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

um alle Nachrichten zu bereinigen.

Ich benutze Rate-Limit von 1 Sekunde, um HTTP 429 Too Many Requests Fehler wegen der schlaffen API-Grenze zu vermeiden. In beiden Fällen wurde Kanalnamen ohne # Zeichen geliefert

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

!! UPDATE !!

als @ Niels-van-Reijmersdal im Kommentar erwähnt.

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

!! ENDE UPDATE !!

Hier ist eine nette Antwort von SlackHQ in Twitter, und es funktioniert ohne irgendwelche Drittanbieter-Sachen. 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

Nur da draußen, funktioniert das nur für Kanäle und nicht für direkte Nachrichten. – TheRodeo

+1

Dies löschen nur die letzten 10 Nachrichten zum Zeitpunkt – MatPag

+1

Nein, ich habe mit dieser Methode eine Menge Nachrichten gelöscht. Es war ungefähr 100 oder so. – Braggae

10

Ich schrieb einen einfachen Knoten Skript für Nachrichten aus öffentlichen und privaten Kanälen zu löschen. Sie können es ändern und verwenden.

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

erste Token und Kanal-ID ändern. Dann führen Sie Skript:

node ./delete-channel-messages 

Sie können Ihren Token aus der folgenden URL lernen:

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

auch Kanal-ID in der URL-Leiste broweser geschrieben.

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

Script löscht 1000 Meldungen in einem einzigen Durchlauf.

5

Für alle andere, die es nicht programmatisch zu tun braucht, hier ist ein schneller Weg:

(wahrscheinlich bezahlten Benutzer nur)

  1. öffnet den Kanal in Web oder auf dem Desktop App, und klicken Sie auf das Zahnrad (oben rechts).
  2. Wählen Sie "Zusätzliche Optionen ...", um das Archivmenü aufzurufen.
  3. Wählen Sie "Festlegen der Nachrichtenwartungsrichtlinie für Kanäle".
  4. Legen Sie "Alle Nachrichten für eine bestimmte Anzahl von Tagen beibehalten" fest.
  5. Alle Nachrichten, die älter als diese Zeit sind, werden dauerhaft gelöscht!

ich in der Regel diese Option auf „1 Tag“, um den Kanal mit einem bestimmten Kontext zu verlassen, dann gehe ich in die obigen Einstellungen zurück, und setzte es Aufbewahrungsrichtlinie auf „default“ zurück sie zu speichern geht weiter von jetzt an.

Verwandte Themen