# Запросы сервера (Server Messages)

Этот раздел описывает сообщения, которые сервер отправляет по собственной инициативе, без прямого запроса клиента. Используются для уведомлений о внешних событиях, изменениях состояния и действиях других пользователей. Например:

  • createGroupChat – создан групповой чат.

  • addChatParticipant – пользователь добавлен в групповой чат.

  • sendMessage – новое сообщение в чате.

На каждый запрос сервера клиент должен ответить так:

{
    "type": 2,
    "id": 123456
}

# Создан личный чат

Сообщение от сервера:

{
    "method": "createP2PChat",
    "type": 1,
    "id": 2,
    "payload": {
        "chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
        "title": "brown@video.example.com",
        "chatType": 1,
        "lastMessage": {
            "chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
            "messageId": "d8bdd362-2656-46ff-a1db-8dadd2b76250",
            "timestamp": 1746028006345,
            "author": {
                "id": "brown@video.example.com",
                "type": 1
            },
            "type": 200,
            "content": {
                "text": "What's up?",
                "parseMode": "text"
            }
        },
        "unreadMessages": 1
    }
}
Параметр Тип Обяз. Описание
method string Да Команда createP2PChat
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной. Подробнее читайте тут.
chatId string Да Идентификатор созданного чата
title string Да TrueConf ID пользователя, который создал чат
chatType uint32 Да Тип созданного чата. Соответствует ChatTypeEnum
lastMessage.chatId string Да Идентификатор чата, где находится сообщение
messageId string Да Идентификатор сообщения. Можно использовать в дальнейшем для изменения, пересылки или удаления сообщения
timestamp uint64 Да Временная метка отправки сообщения в формате UNIX timestamp с точностью до миллисекунд
author.id string Да Уникальный идентификатор автора сообщения (TrueConf ID или имя сервера)
author.type uint32 Да Тип автора сообщения. См. EnvelopeAuthorTypeEnum
lastMessage.type uint32 Да Тип сообщения, соответствует EnvelopeTypeEnum
text string Нет Текст сообщения
parseMode string Нет Режим форматирования (подробнее)
unreadMessages uint32 Да Количество непрочитанных сообщений в личном чате

Поле payload.lastMessage.content имеет разное содержание в зависимости от типа сообщения payload.lastMessage.type.

Ответ для сервера:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Создан групповой чат

Сообщение от сервера:

{
    "method": "createGroupChat",
    "type": 1,
    "id": 14,
    "payload": {
        "chatId": "08d5dbda94a9de4b7554e3b4355307f9e97ffdb7",
        "title": "Marketing",
        "chatType": 2,
        "lastMessage": {
            "chatId": "08d5dbda94a9de4b7554e3b4355307f9e97ffdb7",
            "messageId": "cccea4a7-24b4-4b2c-8c50-67d01bce17bf",
            "timestamp": 1746029638147,
            "author": {
                "id": "user@video.example.com",
                "type": 0
            },
            "type": 110,
            "content": {
                "userId": "bot@video.example.com",
                "role": "user"
            }
        },
        "unreadMessages": 2
    }
}
Параметр Тип Обяз. Описание
method string Да Команда createGroupChat
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
chatId string Да Идентификатор созданного чата
title string Да Название созданного чата
chatType uint32 Да Тип созданного чата. Соответствует ChatTypeEnum
lastMessage.chatId string Да Идентификатор чата, где находится сообщение
messageId string Да Идентификатор сообщения. Можно использовать для изменения, пересылки или удаления
timestamp uint64 Да Временная метка в формате UNIX timestamp с точностью до миллисекунд
author.id string Да TrueConf ID автора сообщения или имя сервера
author.type uint32 Да Тип автора. См. EnvelopeAuthorTypeEnum
lastMessage.type uint32 Да Тип сообщения. См. EnvelopeTypeEnum
userId string Нет TrueConf ID пользователя, отправившего сообщение
role string Нет Роль пользователя в чате (см. подробнее)
unreadMessages uint32 Да Количество непрочитанных сообщений в групповом чате

Поле payload.lastMessage.content имеет разное содержание в зависимости от типа сообщения payload.lastMessage.type.

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Создан канал

Сообщение от сервера:

{
    "method": "createChannel",
    "type": 1,
    "id": 14,
    "payload": {
        "chatId": "08d5dbda94a9de4b7554e3b4355307f9e97ffdb7",
        "title": "Important Announcements",
        "chatType": 6,
        "lastMessage": {
            "chatId": "08d5dbda94a9de4b7554e3b4355307f9e97ffdb7",
            "messageId": "cccea4a7-24b4-4b2c-8c50-67d01bce17bf",
            "timestamp": 1746029638147,
            "author": {
                "id": "user@video.example.com",
                "type": 0
            },
            "type": 110,
            "content": {
                "userId": "bot@video.example.com",
                "role": "user"
            }
        },
        "unreadMessages": 2
    }
}
Параметр Тип Обяз. Описание
method string Да Команда createChannel
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
chatId string Да Идентификатор созданного канала
title string Да Название созданного канала
chatType uint32 Да Тип созданного канала. Соответствует ChatTypeEnum = 6
lastMessage.chatId string Да Идентификатор канала, где находится сообщение
messageId string Да Идентификатор сообщения. Можно использовать данный идентификатор в дальнейшем, для изменения, пересылки или удаления сообщения
timestamp uint64 Да Временная метка отправки сообщения в формате UNIX timestamp с точностью до миллисекунд
author.id string Да Уникальный идентификатор автора сообщения. Это либо TrueConf ID пользователя, либо имя сервера, с которого пришло сообщение. Тип идентификатора зависит от поля type
author.type uint32 Да Тип автора сообщения. Подробнее см. EnvelopeAuthorTypeEnum
lastMessage.type uint32 Да Тип сообщения. Позволяет определить тип контента в сообщении. Соответствует EnvelopeTypeEnum
userId string Нет TrueConf ID пользователя, отправившего сообщение
role string Нет Роль пользователя в групповом чате (см. подробнее)
unreadMessages uint32 Да Количество непрочитанных сообщений в канале

Поле payload.lastMessage.content имеет разное содержание в зависимости от типа сообщения payload.lastMessage.type.

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Добавлен участник в чат

Сообщение от сервера:

{   
    "method": "addChatParticipant",
    "type": 1,
    "id": 1,
    "payload": {
        "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
        "userId": "user@video.example.com",
        "addedBy": {
            "id": "admin@video.example.com",
            "type": 1
        },
        "timestamp": "1735370776"
    }
}
Параметр Тип Обяз. Описание
method string Да Команда addChatParticipant
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной. Подробнее читайте тут
chatId string Да Идентификатор чата, куда был добавлен пользователь
userId string Да TrueConf ID пользователя, которого добавили в чат
addedBy.id string Да Уникальный идентификатор пользователя, добавившего нового участника. Это TrueConf ID или имя сервера, в зависимости от addedBy.type
addedBy.type uint32 Да Тип пользователя, который добавил нового участника. См. EnvelopeAuthorTypeEnum
timestamp uint64 Да Временная метка добавления участника в чат в формате UNIX timestamp (в миллисекундах)

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Удален участник чата

Сообщение от сервера:

{
  "method": "removeChatParticipant",
  "type": 1,
  "id": 1,
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "userId": "user@video.example.com",
    "removedBy": {
      "id": "admin@video.example.com",
      "type": 1
    },
    "timestamp": "1735370778"
  }
}
Параметр Тип Обяз. Описание
method string Да Команда removeChatParticipant
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
chatId string Да Идентификатор чата, где был удален пользователь
userId string Да TrueConf ID пользователя, которого удалили из чата
removedBy.id string Да Уникальный идентификатор пользователя, удалившего участника из чата. Это либо TrueConf ID, либо имя сервера, с которого пришло сообщение. Тип идентификатора зависит от поля removedBy.type
removedBy.type uint32 Да Тип пользователя, который удалил участника из чата. Подробнее см. EnvelopeAuthorTypeEnum
timestamp uint64 Да Временная метка удаления участника из чата в формате UNIX timestamp с точностью до миллисекунд

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Новое сообщение в чате

Сообщение от сервера:

{
    "method": "sendMessage",
    "type": 1,
    "id": 11,
    "payload": {
        "chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
        "messageId": "d66254de-9d89-4130-8027-c5378f042800",
        "timestamp": 1746029007569,
        "author": {
            "id": "brown@video.example.com",
            "type": 1
        },
        "isEdited": false,
        "box": {
            "id": 4,
            "position": "0"
        },
        "type": 200,
        "content": {
            "text": "Текст",
            "parseMode": "html"
        }
    }
}

Уведомление о новом сообщении содержит поля, соответствующие объекту Envelope. Подробное описание этих полей вы найдёте в разделе посвящённом работе с сообщениями.

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Новый файл в чате

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

Сообщение от сервера:

{
    "type": 1,
    "id": 7,
    "method": "sendMessage",
    "payload": {
        "chatId": "bea15543d971a83c8ba1f103104791762c6b4b8f",
        "messageId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
        "timestamp": 1735302531000,
        "author": {
            "id": "user@video.example.com",
            "type": 1
        },
        "isEdited": false,
        "box": {
            "id": 10,
            "position": ""
        },
        "type": 2,
        "content": {
            "name": "someimage.png",
            "mimeType": "image/png",
            "size": 2156,
            "fileId": "e09dbd63a16bd8cd7bddda7193c1c4ff0d2f6de5"
        }
    }
}

Уведомление о сообщении с файлом содержит поля, соответствующие объектам Envelope и FileMessageContent. Подробное описание этих полей вы найдёте в разделе посвящённом работе с сообщениями.

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Новый опрос в чате

Сообщение от сервера:

{
    "method": "sendMessage",
    "type": 1,
    "id": 11,
    "payload": {
        "chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
        "messageId": "d66254de-9d89-4130-8027-c5378f042800",
        "timestamp": 1746029007569,
        "author": {
            "id": "brown@video.example.com",
            "type": 1
        },
        "isEdited": false,
        "box": {
            "id": 4,
            "position": "0"
        },
        "type": 204,
        "content": {
            "url": "<tool_url>?id=...&k=...&mode=popup&call_id=vasya@srv.trueconf.name/1vca3&lang=ru&version=1&app=TrueConf+WebClient&dn=Vasiliy&s=12fee56062786c267cc286045f1fac76",
            "appVersion": 1,
            "path": "some_survey",
            "title": "Meeting survey",
            "description": "{{Survey}}",
            "buttonText": "{{Go to survey}}",
            "secret": "054c1cf18f1e64f4c38b256effedfe18debdcbba",
            "alt": "📊 <a href='https://server.url/webtools/survey?id=some_survey&error=autologin_not_supported'>Meeting survey</a>"
        }
    }
}

Уведомление о сообщении с опросом содержит поля, соответствующие объектам Envelope и. Подробное описание этих полей вы найдёте в разделе посвящённом работе с сообщениями и опросами.

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Сообщение было изменено

Сообщение от сервера:

{
    "method": "editMessage",
    "type": 1,
    "id": 12,
    "payload": {
        "messageId": "d4d20b4f-e4a4-4abc-8e66-ff2e17f483b7",
        "timestamp": 1746029430000,
        "content": {
            "text": "🤝",
            "parseMode": "text"
        }
    }
}
Параметр Тип Обяз. Описание
method string Да Команда editMessage
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
messageId string Да Идентификатор измененного сообщения. Можно использовать данный идентификатор в дальнейшем для копирования, пересылки или удаления сообщения
timestamp uint64 Да Временная метка изменения сообщения в формате UNIX timestamp с точностью до миллисекунд
text string Да Текст измененного сообщения
parseMode string Да Режим форматирования (см. подробнее)

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)

# Сообщение было удалено

Сообщение от сервера:

{
    "method": "removeMessage",
    "type": 1,
    "id": 12,
    "payload": {
        "chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
        "messageId": "d4d20b4f-e4a4-4abc-8e66-ff2e17f483b7",
        "removedBy": {
            "id": "brown@video.example.com",
            "type": 1
        }
    }
}
Параметр Тип Обяз. Описание
method string Да Команда removeMessage
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
chatId string Да Идентификатор чата, где было удалено сообщение
messageId string Да Идентификатор удаленного сообщения. Можно использовать данный идентификатор в дальнейшем для копирования, пересылки или удаления сообщения
removedBy.id string Да Уникальный идентификатор пользователя, удалившего сообщение. Это либо TrueConf ID, либо имя сервера, с которого пришло сообщение. Тип идентификатора зависит от поля removedBy.type
removedBy.type uint32 Да Тип пользователя, который удалил сообщение. Подробнее см. EnvelopeAuthorTypeEnum

Ответ от клиента:

{
    "type": 2,
    "id": 123456
}
Поле Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор сообщения, на которое дается ответ (см. подробнее)
Обновлено: 19.07.2025