# Работа с чатами

# Создание личного чата с пользователем

Создание личного чата (peer-to-peer) с пользователем сервера. Если бот никогда не писал данному пользователю - будет создан новый чат. Если бот отправлял данному пользователю сообщения - будет возвращен уже существующий чат.

Запрос:

{
    "type": 1,
    "id": 1,
    "method": "createP2PChat",
    "payload": {
        "userId": "user@video.example.com"
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
method string Да Команда createP2PChat
userId string Да TrueConf ID пользователя, с которым мы хотим создать чат

Ответ:

{
    "type": 2,
    "id": 1,
    "payload": {
        "chatId": "4a1f88f1070d2f43d385cde9ff61964bc6b74477"
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа
chatId string Да Идентификатор созданного чата

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

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

Запрос:

{
    "type": 1,
    "id": 1,
    "method": "createGroupChat",
    "payload": {
        "name": "TrueConf Server Administrators’ Chat",
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
method string Да Команда createGroupChat
name string Да Название группового чата

Ответ:

{
    "type": 2,
    "id": 1,
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054"
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа
chatId string Да Идентификатор созданного группового чата

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

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

Запрос:

{
    "type": 1,
    "id": 1,
    "method": "createChannel",
    "payload": {
        "title": "Company news"
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
method string Да Команда createChannel
title string Да Название канала

Ответ:

{
    "type": 2,
    "id": 1,
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054"
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа
chatId string Да Идентификатор созданного канала

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

# Получение информации о чате по ID

Запрос:

{
    "type": 1,
    "id": 1,
    "method": "getChatByID",
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054"
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
method string Да Команда getChatByID
chatId string Да Идентификатор чата

Ответ:

{
    "type": 2,
    "id": 1,
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054",
        "title": "TrueConf Server Administrators’ Chat",
        "chatType": 2,
        "unreadMessages": 0,
        "lastMessage": {
            "messageId": "267d61f2-2ba1-4e88-83ab-bb84415f31b6",
            "timestamp": 1746028006345,
            "author": {
                "id": "brown@video.example.com",
                "type": 1
            },
            "type": 200,
            "content": {
                "text": "What's up?",
                "parseMode": "html"
            }
        }
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа
chatId string Да Идентификатор чата
title string Да Название чата
chatType ChatTypeEnum Да Тип чата
unreadMessages uint32 Да Кол-во непрочитанных сообщений в чате
lastMessage Envelope Да Последнее сообщение в чате

Поле lastMessage соответствует формату Envelope, за исключением того, что в нём отсутствуют поля chatId, isEdited и box.

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

# Получение списка чатов

Запрос:

{
    "type": 1,
    "id": 1,
    "method": "getChats",
    "payload": {
        "count": 10,
        "page": 1
    }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
method string Да Команда getChats
count uint32 Да Максимальное количество объектов чатов в ответе
page uint32 Да Номер страницы запроса (пейджинг). Начинается с 1

Ответ:

{
    "type": 2,
    "id": 1,
    "payload": [
        {
            "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054",
            "title": "TrueConf Server Administrators’ Chat",
            "chatType": 2,
            "unreadMessages": 0,
            "lastMessage": {
                "messageId": "267d61f2-2ba1-4e88-83ab-bb84415f31b6",
                "timestamp": 1746028006345,
                "author": {
                    "id": "brown@video.example.com",
                    "type": 1
                },
                "type": 200,
                "content": {
                    "text": "What's up?",
                    "parseMode": "html"
                }
            }
        },
        {
            "chatId": "4a1f88f1070d2f43d385cde9ff61964bc6b74477",
            "title": "chester@video.example.com",
            "chatType": 1,
            "unreadMessages": 1,
            "lastMessage": {
                "messageId": "d4f756a2-8dd1-4cce-af7c-5a4311af0c79",
                "timestamp": 1746028006690,
                "author": {
                    "id": "chester@video.example.com",
                    "type": 1
                },
                "type": 200,
                "content": {
                    "text": "Hello!",
                    "parseMode": "html"
                }
            }
        },
        {
            "chatId": "5abba630dd1089090ba41c69c7aa34e4ba277a43",
            "title": "Project Announcements",
            "chatType": 6,
            "unreadMessages": 1,
            "lastMessage": {
                "messageId": "267d61f2-2ba1-4e88-83ab-bb84415f31b6",
                "timestamp": 1746028006345,
                "author": {
                    "id": "brown@video.example.com",
                    "type": 1
                },
                "type": 200,
                "content": {
                    "text": "Hello everyone!",
                    "parseMode": "html"
                }
            }
        }
    ]
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа
payload Array<Chat> Да Массив чатов пользователя

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

# Удаление чата

Удаление чата, как личного, так и группового.

Запрос:

{
  "type": 1,
  "id": 1,
  "method": "removeChat",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256"
  }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
method string Да Команда removeChat
chatId string Да Идентификатор удаляемого чата

Ответ:

{
  "type": 2,
  "id": 1,
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256"
  }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа
chatId string Да Идентификатор удалённого чата

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

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

Запрос:

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

Ответ:

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

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

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

Запрос:

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

Ответ:

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

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

# Проверка нахождения участника в чате

Запрос:

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

Ответ:

{
  "type": 2,
  "id": 1,
  "payload": {
    "result": true
  }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа
result boolean Да Флаг наличия участника в чате. Если true — участник присутствует в чате

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

# Получение списка участников чата

Запрос:

{
  "type": 1,
  "id": 1,
  "method": "getChatParticipants",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "pageSize": 100,
    "pageNumber": 1
  }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST
id uint32 Да Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут
method string Да Команда getChatParticipants
chatId string Да Идентификатор чата
pageSize uint32 Да Количество записей с информацией об участниках чата в ответе на запрос
pageNumber uint32 Да Смещение, с которым будет возвращён список участников. Расчитывается по формуле startOffset = pageSize * pageNumber

Ответ:

{
  "type": 2,
  "id": 1,
  "payload": {
    "participants": [
      {
        "userId": "user@video.example.com",
        "role": "user"
      },
      {
        "userId": "admin@video.example.com",
        "role": "admin"
      }
    ]
  }
}
Параметр Тип Обяз. Описание
type uint32 Да Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE
id uint32 Да Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа
participants Array<ChatParticipant> Да Список участников чата, представленный в виде объектов ChatParticipant

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

Обновлено: 19.07.2025