Как интерпретировать данные, экспортированные из Slack

После экспорта данных рабочего пространства можно скачать ZIP-файл, чтобы получить доступ к истории сообщений и ссылкам на файлы.  


Форматы экспорта

Формат экспорта зависит от типа экспорта.

  • Только открытые каналы. Формат экспорта данных: JSON.
  • Все каналы и беседы. Формат экспорта данных: JSON.
  • Каналы и беседы одного пользователя. Форматы экспорта данных: JSON или TXT.


Что содержит файл экспорта

JSON-файлы

TXT-файлы

После завершения экспорта нужно скачать ZIP-файл с данными рабочего пространства и ряд ссылок на файлы рабочего пространства. В зависимости от типа экспорта ZIP-файл будет содержать следующие данные.

  Только открытые каналы Все каналы и беседы
Каналы (channels.json)

Личные сообщения (dms.json)  

Закрытые каналы (groups.json)  

Журналы действий в приложениях (integration_logs.json)

Групповые личные сообщения (mpims.json)  

Участники (users.json)*

Папки для каждого открытого канала

Папки для каждого закрытого канала

 

Папки для каждого личного сообщения

 

*Если данные экспортируются из организации Enterprise Grid, эта папка будет называться org_users.json

Совет. При использовании плана Enterprise Grid можно экспортировать данные всей организации или определенного рабочего пространства. Экспорт из конкретного рабочего пространства включает открытые и закрытые каналы выбранного рабочего пространства, но не охватывает каналы для нескольких рабочих пространств.

Если вы выбрали экспорт данных бесед одного пользователя в формате TXT, после завершения экспорта вы скачаете ZIP-файл со всеми сообщениями и файлами, которые были отправлены выбранным вами пользователем. В ZIP-файле будет три папки:

  • каналов
  • ЛС
  • файлы

В каждой папке находятся TXT-файлы с историей бесед или файлы, отправленные отдельным пользователем в выбранном диапазоне дат.

Примечание. Если к экспорту применить диапазон дат, Slack вернет все беседы, в которых участвовал пользователь, даже если в указанные даты сообщений в данной беседе не было. В этом случае канал в файле экспорта не будет содержать никаких сообщений.


Навигация по файлу экспорта

JSON-файлы

TXT-файлы

В ZIP-файле экспорта каждому каналу и личному сообщению соответствует отдельная папка. Каждая папка содержит упорядоченные по дате сообщения из беседы в виде отдельных JSON-файлов.

В набор входят ссылочные файлы для бесед различных типов — channels.json для открытых каналов, groups.json для закрытых каналов и dms.json для личных сообщений. Эти файлы содержат ИД пользователей и каналов. Чтобы найти конкретную беседу, нужен файл канала и ссылочный файл. Например, чтобы найти конкретное сообщение, нужно выполнить следующие действия. 

  1. Откройте файл users.json и найдите нужных пользователей. Запишите их ИД.
  2. Затем откройте файл channels.json, groups.json или dms.json и найдите беседу, которая содержит нужные ИД в разделе Участники. Запишите имя канала или ИД беседы.
  3. В основной папке экспорта найдите папку, имя которой совпадает с именем канала или ИД беседы. В этой папке будет несколько JSON-файлов — по одному для каждой даты, когда были отправлены сообщения.

Примечание. Папка добавляется в файл экспорта, только если в экспортируемом диапазоне дат есть сообщения. Например, если правила хранения предусматривают удаление сообщений в открытых каналах через 30 дней и вы выбрали диапазон дат, заканчивающийся раньше, чем 31 день назад, в файле экспорта не будет папок открытых каналов.

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

TXT-файлы бесед называются по имени канала или по именам пользователей, участвующих в личном сообщении. Например, данные канала #общий будут в файле general.txt. Файл личного сообщения может иметь имя, например, iivanov-spetrov.txt.

Чтобы просмотреть сообщения из определенной беседы, можно сделать следующее.

  1. Откройте папку channels или dms.
  2. Откройте TXT-файл канала или личного сообщения, которые хотите просмотреть.

В TXT-файле под заголовком Сообщения вы увидите историю сообщений в беседе. История включает сообщения, отправленные пользователем, данные которого вы экспортировали, и остальными пользователями, участвовавшими в беседе.

Примечание. Измененные и удаленные сообщения появятся в файле экспорта только в том случае, если правила хранения предусматривают их хранение.


Как читать сообщения 

JSON-файлы

TXT-файлы

Каждое сообщение содержит следующие поля:

  • "type": 
    указание на то, что это сообщение;
  • "user": 
    ИД участника, отправившего сообщение;
  • "text": 
    фактический текст сообщения;
  • "ts": 
    отметка времени публикации сообщения. Для преобразования отметки времени можно использовать любой онлайн-конвертер часовых поясов Unix.

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

{
   "type": "message",
   "user": "U2147483697",
   "text": "Привет всем!",
   "ts": "1355517523.000005"
}

Примечание. Для некоторых сообщений указывается также параметр"attachments". Этот параметр содержит список объектов, вложенных в сообщение. 

Совет. Чтобы интерпретировать буквенно-цифровые ИД для полей "channel" и "user", воспользуйтесь файлами channels.json и users.json.

Подтипы сообщений

Помимо сообщений участников, в Slack существуют другие подтипы сообщений. Это сообщения приложений, ботов и интеграций, а также сообщения о присоединении участников к каналу. Вот полный список подтипов сообщений.

 

Тип Описание
bot_message Сообщение опубликовано приложением или интеграцией.
me_message Сообщение отправлено с командой «/курсив».
message_changed Сообщение изменено.
message_deleted Сообщение удалено.
channel_join Участник присоединился к каналу.
channel_leave Участник покинул канал.
channel_topic Тема канала изменена.
channel_purpose Назначение канала изменено.
channel_name Канал переименован.
channel_archive Канал отправлен в архив.
channel_unarchive Канал извлечен из архива.
group_join Участник присоединился к группе.
group_leave Участник покинул группу.
group_topic Тема группы изменена.
group_purpose Назначение группы изменено.
group_name Группа переименована.
group_archive Группа отправлена в архив.
group_unarchive Группа извлечена из архива.
file_share Файл опубликован в канале.
file_reply К файлу добавлен ответ.
file_mention Файл упомянут в канале.
pinned_item В канале закреплен объект.
unpinned_item В канале откреплен объект.

 

Сохраненные объекты, закрепленные объекты и реакции

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

  • Параметр "is_starred": true означает, что участник сохранил сообщение. Если сообщение никто не сохранил, этот параметр не отображается.
  • Если сообщение где-то закреплено, рядом со параметром"pinned_to" отображаются ИД местоположений.
  • Если имеется параметр "reactions", он содержит все эмодзи-реакции, добавленные к сообщению ("name"), количество отреагировавших пользователей ("count") и их список ("users").
{
   "type": "message",
   "channel": "C2147483705",
   "user": "U2147483697",
   "text": "Привет всем!",
   "ts": "1355517523.000005",
   "is_starred": true,
   "pinned_to": ["C024BE7LT", ...],
   "reactions": [
       {
           "name": "astonished",
           "count": 3,
           "users": [ "U1", "U2", "U3" ]
       },
       {
           "name": "facepalm",
           "count": 1034,
           "users": [ "U1", "U2", "U3", "U4", "U5" ]
       }

Примечание. Параметр "reactions" может содержать не всех участников, которые отреагировали на сообщение, однако параметр "count" всегда показывает фактическое количество таких участников.

Сообщения отображаются в порядке их отправки в беседе. В сообщениях содержится следующая информация.

  • Отметка времени отправки сообщения (по Гринвичу).
  • Имя пользователя Slack, отправившего сообщение.
  • Содержание сообщения.

Вот пример простого сообщения.

[20.04.2020 13:47:27] <spetrov> Добро пожаловать в канал отдела продаж! Наша команда растет все быстрее.

В файле экспорта не делаются различия между сообщениями в обсуждении и сообщениями, отправленными в канал. Все сообщения в обсуждении отобразятся в тексте беседы вперемешку с остальными сообщениями.

Совет. Если пользователя упомянули в сообщении, перед его отображаемым именем не будет символа @.


Как прочитать отредактированное сообщение

JSON-файлы

TXT-файлы

Участники могут редактировать свои сообщения в канале. Если выбранный вариант экспорта включает журналы редактирования, для отредактированного сообщения будет указан параметр "edited" со следующей информацией:

  • "user":
    ИД участника, внесшего изменение;
  • "ts":
    отметка времени редактирования сообщения. Для преобразования отметки времени можно использовать любой онлайн-конвертер часовых поясов Unix.

Правки заносятся в файл данных в соответствии с датой редактирования. Вот пример.

{
        "type": "message",
        "user": "UTXHL6F8A",
        "upload": false,
        "ts": "1590101612.000000",
        "text": "Привет! Это отредактированное сообщение.",
        "previous": {
            "text": "Привет! Это исходное сообщение.",
            "blocks": [
                {
                    "type": "rich_text",
                    "block_id": "Bts",
                    "elements": [
                        {
                            "type": "rich_text_section",
                            "elements": [
                                {
                                    "type": "text",
                                    "text": "Привет! Это исходное сообщение."
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        "original_ts": "1590101603.000300",
        "subtype": "message_changed",
        "editor_id": "UTXHL6F8A",
        "blocks": [
            {
                "type": "rich_text",
                "block_id": "O+PJ",
                "elements": [
                    {
                        "type": "rich_text_section",
                        "elements": [
                            {
                                "type": "text",
                                "text": "Привет! Это отредактированное сообщение."
                            }
                        ]
                    }
                ]
            }
        ]
    }

Измененные сообщения отображаются в конце TXT-файла беседы под заголовком Редактирование сообщений. В измененных сообщениях содержится следующая информация.

  • Отметка времени изменения сообщения (по Гринвичу).
  • Имя пользователя, изменившего сообщение.
  • Отметка времени отправки исходного сообщения.
  • Содержание исходного сообщения до правки. Измененное сообщение отображается в разделе Сообщения в тексте беседы.

Вот пример.

[20.04.2020 13:47:27] <spetrov> обновлено [20.04.2020 13:47:09] <spetrov> Добро пожаловать в канал отдела продаж!


Как прочитать удаленное сообщение

JSON-файлы

TXT-файлы

Участники могут удалять свои сообщения в канале. Если правила хранения предусматривают ведение журналов удаления, для удаленного сообщения указывается параметр "previous" со следующей информацией:

  • "text":
    текст удаленного сообщения;
  • "ts":
    отметка времени удаления сообщения. Для преобразования отметки времени можно использовать любой онлайн-конвертер часовых поясов Unix.

Удаление сообщения заносится в файл данных по дате удаления. Вот пример.

{
       "type": "message",
       "user": "UTXHL6F8A",
       "upload": false,
       "ts": "1590101824.000000",
       "text": "",
       "previous": {
           "text": "Это удаленное сообщение.",
           "blocks": [
               {
                   "type": "rich_text",
                   "block_id": "ABSkQ",
                   "elements": [
                       {
                           "type": "rich_text_section",
                           "elements": [
                               {
                                   "type": "text",
                                   "text": "Это удаленное сообщение."
                               }
                           ]
                       }
                   ]
               }
           ]
       },
       "original_ts": "1590101818.000600",
       "subtype": "message_deleted",
       "editor_id": "UTXHL6F8A"
   }

Удаленные сообщения отображаются в конце TXT-файла беседы под заголовком Редактирование сообщений. В удаленных сообщениях содержится следующая информация.

  • Отметка времени удаления сообщения (по Гринвичу).
  • Имя пользователя, удалившего сообщение.
  • Отметка времени отправки исходного сообщения.
  • Содержание исходного сообщения.

Вот пример удаленного сообщения.

[20.04.2020 13:47:47] <spetrov> удалено [20.04.2020 13:47:42] <spetrov> На прошлой неделе продажи достигли X.


Как просматривать файлы

JSON-файлы

TXT-файлы

В данных экспорта Slack в формате JSON нет файлов из рабочего пространства. Они включают серию ссылок, найденных в файлах JSON истории сообщений в файле экспорта, которые ведут на файлы рабочего пространства. Скопируйте эти ссылки из JSON-файла и вставьте в браузер, чтобы открыть файлы из рабочего пространства.

Вот как найти конкретный файл.

  1. Откройте папку беседы, в которой был опубликован файл.
  2. Найдите JSON-файл, соответствующий дате публикации файла.
  3. Ссылка на файл содержится в сведениях о сообщении, к которому он был прикреплен (раздел "files:").

Примечание. Если вы удалите файл, канал или рабочее пространство, в котором он был опубликован, этот файл станет недоступен по ссылке в экспорте.

В папке files ZIP-файла содержатся файлы, отправленные отдельным пользователем, который был выбран для экспорта. Названия файлов отображаются в TXT-файлах папок channels и dms в тексте беседы, например вот так:

[20.04.2020 13:47:27] spetrov опубликовал(-а) файл(-ы) F01243S814M

Вот как найти конкретный файл.

  1. Откройте TXT-файл беседы, в которой был опубликован файл.
  2. Найдите в истории сообщений файл, который нужно открыть, и запишите имя соответствующего файла (например, F01243S814M).
  3. Откройте папку files и выберите имя файла, чтобы открыть его.