Slack: Получить все сообщения
Я хочу получить все сообщения, отправленные в моем домене slack. Хотя, я бы предпочел, чтобы данные были получены в XML или JSON. Я могу обрабатывать данные практически в любой форме.
Как получить все эти сообщения? Является ли это возможным? Если нет, могу ли я получить все сообщения для определенного канала?
Ответы
Ответ 1
Если вам нужно сделать это динамически с помощью API, вы можете использовать метод channel.list, чтобы перечислить все каналы в вашей команде и channel.history method для извлечения истории каждого канала. Обратите внимание, что это не будет включать DM или частные группы.
Если вам нужно сделать это в одно время, перейдите в https://my.slack.com/services/export, чтобы экспортировать свои командные архивы сообщений в виде серии файлов JSON
![message archive export screen]()
Ответ 2
Этот скрипт Python экспортирует все в JSON простым запуском: https://gist.github.com/Chandler/fb7a070f52883849de35
Он создает каталоги для вас, и у вас есть возможность исключить прямые сообщения или каналы.
Все, что вам нужно для установки - это модуль для slacker, который просто является pip install slacker
. Затем запустите его с --token='secret-token'
. Вам нужен устаревший токен, который доступен здесь в данный момент.
Ответ 3
Для тех, кто ищет загрузки истории прямого сообщения, этот node основанный инструмент cli позволяет загружать сообщения от DM и IM в обоих JSON и CSV. Я использовал его, и он работает очень хорошо.
Ответ 4
С новым интерфейсом Conversations API эта задача теперь немного проще. Вот полный обзор:
Извлечение сообщений из канала
Новый метод API Цвета conversations.history
позволит вам загружать сообщения из любого типа разговора/канала (общедоступного, частного, DM, Group DM), если ваш токен имеет к нему доступ.
Этот метод также поддерживает подкачку страниц, что позволяет загружать большое количество сообщений.
Преобразование идентификаторов в имена
Обратите внимание, что этот метод будет возвращать сообщения в необработанном формате JSON только с идентификаторами, поэтому вам потребуется вызвать дополнительный метод API для преобразования этих идентификаторов в простой текст:
Извлечение темы
Кроме того, используйте разговор.ответы, чтобы загрузить темы в беседе. Потоки немного похожи на разговоры внутри разговора и должны быть загружены отдельно.
Проверьте эту страницу официальной документации для более подробной информации о потоках.