Работа с чатами
Работа с чатами
Запросы клиента
Создать личный чат
Создание личного чата (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": {
"title": "TrueConf Server Administrators’ Chat",
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| method | string | Да | Команда createGroupChat |
| title | 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. Список возможных значений доступен в соответствующем разделе документации.
Создать чат "Избранное" 5.5.2+
Запрос:
{
"type": 1,
"id": 1,
"method": "createFavoritesChat",
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| method | string | Да | Команда createFavoritesChat |
Ответ:
{
"type": 2,
"id": 1,
"payload": {
"chatId": "b7d0e9b76dd414cce07d6895682455814fa4bfd1"
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа |
| chatId | string | Да | Идентификатор созданного чата "Избранное" |
В случае возникновения ошибки возвращается сообщение, содержащее параметр 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. Список возможных значений доступен в соответствующем разделе документации.
Изменить название чата 5.5.3+
Запрос:
{
"type": 1,
"id": 1,
"method": "editChatTitle",
"payload": {
"chatId": "29bc6e4d0f99105b50f419eff03a1ed58da9db6c",
"title": "New title"
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| method | string | Да | Команда editChatTitle |
| chatId | string | Да | Идентификатор переименовываемого чата |
| title | string | Да | Новое название чата |
Ответ:
{
"type": 2,
"id": 2,
"payload": {
"chatId": "29bc6e4d0f99105b50f419eff03a1ed58da9db6c",
"timestamp": 1765115572804
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа |
| chatId | string | Да | Идентификатор чата, у которого было изменено название |
| timestamp | uint64 | Да | Временная метка изменения названия чата в формате UNIX timestamp с точностью до миллисекунд |
В случае возникновения ошибки возвращается сообщение, содержащее параметр errorCode. Список возможных значений доступен в соответствующем разделе документации.
Изменить изображение чата 5.5.3+
Запрос:
{
"type": 1,
"id": 1,
"method": "editChatAvatar",
"payload": {
"chatId": "29bc6e4d0f99105b50f419eff03a1ed58da9db6c",
"temporalFileId": "8157ea50-fd9e-4b27-bb93-d9045bc65c48"
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| method | string | Да | Команда editChatAvatar |
| chatId | string | Да | Идентификатор переименовываемого чата |
| temporalFileId | string | Да | Идентификатор загруженного на сервер файла. Для удаления изображения задайте null |
Получить историю чата
Сообщения возвращаются в порядке от самого нового сообщения (или от fromMessageId) и до самого старого по дате добавления сообщения в чат.
Запрос:
{
"type": 1,
"id": 1,
"method": "getChatHistory",
"payload": {
"chatId": "4a1f88f1070d2f43d385cde9ff61964bc6b74477",
"count": 9999,
"fromMessageId": "e37cfc52-592f-453f-a3dd-275170b2018d"
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| method | string | Да | Команда getChatHistory |
| chatId | string | Да | Идентификатор чата, для которого запрашивается история сообщений |
| count | uint32 | Да | Количество возвращаемых в ответе сообщений |
| fromMessageId | string | Нет | Идентификатор сообщения чата, с которого будет возвращена история |
Ответ:
{
"type": 2,
"id": 1,
"payload": {
"chatId": "4a1f88f1070d2f43d385cde9ff61964bc6b74477",
"count": 1,
"messages": [
{
"messageId": "8fe61d87-6db0-4792-8f5e-e5960c7d5a06",
"timestamp": 1234567890,
"author": {
"id": "user@video.example.com",
"type": 1
},
"replyMessageId": null,
"isEdited": true,
"box": {
"id": 123456,
"position": ""
},
"type": 0,
"content": {
"text": "Hello, chat bot!",
"parseMode": "html"
}
}
]
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа |
| chatId | string | Да | Идентификатор чата, для которого запрашивалась история сообщений |
| count | uint32 | Да | Количество полученных сообщений |
| messages | Array<Envelope> | Нет | Массив объектов Envelope, каждый из которых представляет одно сообщение. Описание полей и примеры — в разделе «Справочник API» |
В случае возникновения ошибки возвращается сообщение, содержащее параметр errorCode. Список возможных значений доступен в соответствующем разделе документации.
Очистить историю чата 5.5.3+
Удаление всех сообщений из указанного чата (личный, групповой или канал).
Запрос:
{
"type": 1,
"id": 1,
"method": "clearHistory",
"payload": {
"chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
"forAll": false
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| method | string | Да | Команда clearHistory |
| chatId | string | Да | Идентификатор чата, история которого будет очищена |
| forAll | bool | Нет | По умолчанию — false. Если true, то чат будет очищен для всех. В групповых чатах и каналах должны быть выданы права для выполнения этого действия |
Ответ:
{
"type": 2,
"id": 1,
"payload": {}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа |
В случае возникновения ошибки возвращается сообщение, содержащее параметр errorCode. Список возможных значений доступен в соответствующем разделе документации.
Получить информацию о чате
Возвращает подробные данные о чате по его идентификатору.
Запрос:
{
"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,
"avatarUrl": "",
"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 | Да | Массив чатов пользователя |
В случае возникновения ошибки возвращается сообщение, содержащее параметр errorCode. Список возможных значений доступен в соответствующем разделе документации.
Уведомления сервера
На каждый уведомление (запрос) сервера клиент должен ответить так:
{
"type": 2,
"id": 123456
}После отправки ответа сообщение от пользователя будет считаться прочитанным ботом и будет отмечено соответствующей галочкой в клиентском приложении TrueConf.
Создан личный чат
Сервер уведомляет о создании личного (peer-to-peer) чата, в котором участвуют только два пользователя. Уведомление отправляется, когда другой пользователь инициирует создание такого чата с текущим.
Уведомление от сервера:
{
"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 | Да | пользователя, который создал чат |
| chatType | uint32 | Да | Тип созданного чата. Соответствует ChatTypeEnum |
| lastMessage.chatId | string | Да | Идентификатор чата, где находится сообщение |
| messageId | string | Да | Идентификатор сообщения. Можно использовать в дальнейшем для изменения, пересылки или удаления сообщения |
| timestamp | uint64 | Да | Временная метка отправки сообщения в формате UNIX timestamp с точностью до миллисекунд |
| author.id | string | Да | Уникальный идентификатор автора сообщения (TrueConf ID или имя сервера) |
| author.type | uint32 | Да | Тип автора сообщения. См. EnvelopeAuthorTypeEnum |
| lastMessage.type | uint32 | Да | Тип сообщения, соответствует EnvelopeContentType |
| 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 | Да | Тип сообщения. См. EnvelopeContentType |
| 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 | Да | Тип сообщения. Позволяет определить тип контента в сообщении. Соответствует EnvelopeContentType |
| 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 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
Создан чат "Избранное" 5.5.2+
Сервер уведомляет о создании чата "Избранное".
Сообщение от сервера:
{
"method": "createFavoritesChat",
"type": 1,
"id": 1,
"payload": {
"chatId": "b7d0e9b76dd414cce07d6895682455814fa4bfd1",
"title": null,
"chatType": 5,
"lastMessage": null,
"unreadMessages": 0
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| method | string | Да | Команда createFavoritesChat |
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| chatId | string | Да | Идентификатор созданного чата "Избранное" |
| title | — | Да | По умолчанию null |
| chatType | uint32 | Да | Тип созданного чата. Соответствует ChatTypeEnum = 5 |
| lastMessage | — | Да | По умолчанию null |
| unreadMessages | uint32 | Да | По умолчанию 0 |
Ответ от клиента:
{
"type": 2,
"id": 123456
}| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
Изменено название чата 5.5.3+
Сообщение от сервера:
{
"method": "editChatTitle",
"type": 1,
"id": 1,
"payload": {
"chatId": "29bc6e4d0f99105b50f419eff03a1ed58da9db6c",
"title": "New title"
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| method | string | Да | Команда editChatTitle |
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| chatId | string | Да | Идентификатор переименованного чата |
| title | string | Да | Новое название чата |
Ответ от клиента:
{
"type": 2,
"id": 123456
}| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
Изменено изображение чата 5.5.3+
Сообщение от сервера:
{
"method": "editChatAvatar",
"type": 1,
"id": 12,
"payload": {
"chatId": "af9d5017f77a5bb81628e123e1061e49dfa29f80",
"avatarUrl": "http://10.110.2.241/bridge/api/client/v1/message/123657c5-1b4f-4416-ae97-fbbc5b5b522d/preview"
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| method | string | Да | Команда editChatAvatar |
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| chatId | string | Да | Идентификатор чата, у которого было изменено изображение |
| avatarUrl | string | Да | Новое изображение чата. Если null — значит изображение отсутствует (удалено). |
Ответ от клиента:
{
"type": 2,
"id": 123456
}| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
Очищена история чата 5.5.3+
Сообщение от сервера:
{
"type": 1,
"id": 1,
"method": "clearHistory",
"payload": {
"chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
"forAll": false
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
| method | string | Да | Команда clearHistory |
| chatId | string | Да | Идентификатор чата, история которого была очищена |
| forAll | bool | Нет | Если true, то чат был очищен для всех |
Ответ от клиента:
{
"type": 2,
"id": 123456
}| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |
Удален чат
Сервер уведомляет об удалении чата, в котором ранее состоял текущий пользователь. Это может быть: личный (peer-to-peer) чат, групповой чат,канал.
Сообщение от сервера:
{
"method": "removeChat",
"type": 1,
"id": 1,
"payload": {
"chatId": "84960c6d80afa729b0fd42d35331de5814cc3e9a"
}
}| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| method | string | Да | Команда removeChat |
| type | uint32 | Да | Тип сообщения (по умолчанию 1). Соответствует MESSAGE_TYPE.REQUEST |
| id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной. Подробнее читайте тут |
| chatId | string | Да | Идентификатор удалённого чата |
Ответ от клиента:
{
"type": 2,
"id": 123456
}| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| type | uint32 | Да | Тип сообщения (по умолчанию 2). Соответствует MESSAGE_TYPE.RESPONSE |
| id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |