2015-09-28 2 views
47

В настоящее время у нас есть Slack-канал с ~ 8K сообщениями, все это происходит из интеграции Jenkins. Есть ли какой-либо программный способ удаления всех сообщений с этого канала? Веб-интерфейс может удалять только 100 сообщений за раз.Slack clean все сообщения (~ 8K) в канале

Заранее благодарен!

ответ

42

Я быстро обнаружил, что кто-то уже сделал помощника: slack-cleaner для этого.

И для меня это просто: чистая команда slack-cleaner --token=<TOKEN> --message --channel jenkins

+0

Другой вариант исходит от [npm] (https://libraries.io/npm/slack-cleanup), просто еще не пробовал. – Hann

+0

slack-cleaner отлично работает! – mvelay

+0

Где я могу найти токен и канал? – kk78626

12

по умолчанию не работает для меня дает следующее сообщение об ошибке:

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

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

но после работал без каких-либо вопроса, чтобы убрать бота сообщения

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

или

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

очистить все сообщения.

Я использую предел скорости в 1 секунду, чтобы избежать ошибки HTTP 429 Too Many Requests из-за слабого предела скорости подачи. В обоих случаях имя канала подавалась без # знака

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

!! UPDATE !!

как @ niels-van-reijmersdal в комментарии.

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

!! END UPDATE !!

Вот хороший ответ SlackHQ в твиттере, и он работает без каких-либо сторонних материалов. 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

Просто поместив его там, это работает только для каналов, а не для прямых сообщений. – TheRodeo

+1

Это только удаляет последние 10 сообщений в момент времени – MatPag

+1

Нет, я использовал для удаления большого количества сообщений с помощью этого метода. Это было около 100 или что-то еще. – Braggae

10

Я написал простой скрипт, узел для удаления сообщений из государственных и частных каналов. Вы можете изменить и использовать его.

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

Сначала измените токен и идентификатор канала. Затем запустите скрипт:

node ./delete-channel-messages 

Вы можете узнать свой маркер из следующего URL:

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

Также идентификатор канала записывается в строке broweser URL.

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

Скрипт удаляет 1000 сообщений в один прогон.

5

Для кого-то, кто не нужно делать это программным, вот быстрым способом:

(возможно только для платных пользователей)

  1. Открыть канал в сети или на рабочем столе приложение, и нажмите кнопку cog (вверху справа).
  2. Выберите «Дополнительные параметры ...», чтобы открыть архивное меню.
  3. Выберите «Установить политику хранения сообщений канала».
  4. Установить «Сохранить все сообщения за определенное количество дней».
  5. Все сообщения старше этого времени удаляются постоянно!

Я обычно установить эту опцию в «1 день», чтобы выйти из канала с некоторым контекстом, то я вернусь в вышеуказанные настройки и установить его политику хранения обратно «по умолчанию» идти продолжать их хранение впредь.