[POST] .../v1/chatmessage/add
Добавляет сообщение в чат.
Входные параметры
| Название | Тип данных | Обязательность | Описание |
|---|---|---|---|
| chat_id | String | Обязательный | UUID чата |
| reply_id | String | Необязательный | UUID сообщения, на которое отправляем ответ |
| replay_text | String | Необязательный | Текст сообщения, на которое отправляем ответ |
| author_entity_type | Enum | Необязательный | Тип автора сообщения |
| author_entity_id | Int64 | Необязательный | ID автора сообщения |
| message_type | Enum | Необязательный | Тип сообщения (Regular, Private, System) |
| text | String | Необязательный | Текст сообщения. Должен быть указан text или file_ids |
| file_ids | Array of Int64 | Необязательный | Массив ID файлов. Должен быть указан text или file_ids |
| external_message_id | String | Необязательный | Внешний ID сообщения |
Ограничения и проверки
chat_id обязателен и должен быть корректным UUID существующего чата.chat_message_add (685).Lead/Deal/Ticket/Task, право записи наследуется от сущности: требуется Edit у связанной сущности (заменяет права chat_message_*).author_entity_type и author_entity_id передаются только парой.reply_id, API пытается найти исходное сообщение в этом же чате:
replay_text не передан, он автоматически заполняется из text исходного сообщения;reply_id невалиден), сообщение все равно добавляется, но без reply_id и replay_text.User, current_user_id).User/current_user_id, можно передавать только при праве chat_manage_all, кроме ChatBot.ChatBot не требуется chat_manage_all, но бот должен быть участником чата с ролью Bot.message_type не передан, используется значение Regular.message_type = Private отправитель должен иметь роль Staff в чате; для автора ChatBot приватная отправка разрешена при его участии в чате.message_type = System требуется право chat_manage_all (688).closed = true), отправка Regular и Private отклоняется с ошибкой 1220.message_type = System.Lead/Deal/Ticket/Task, при закрытой связанной сущности отправка Regular и Private отклоняется с ошибкой 1220.Lead/Deal/Ticket/Task, при закрытой связанной сущности разрешена отправка только message_type = System.message_type = System поля author_entity_type и author_entity_id в самой записи сообщения не заполняются (null).message_type = System сервер принудительно формирует action_code = StaffNoticeAdded и action_payload в формате { "author_entity_type": "...", "author_entity_id": long, "author_name": string, "author_photo_url": string?, "text": "..." }.message_type = System поле text обязательно, file_ids не допускается.text или file_ids.external_message_id в рамках того же чата API возвращает уже существующее сообщение (идемпотентность).event_id для обратной совместимости игнорируется.bold, italic, underline, strike, link, pre.file_id проверяется на существование и доступность вызывающему пользователю.access_level = system, он используется как есть.access_level, сервер создает его копию в папке текущего чата с access_level = system.file_id чатовых system-файлов, а не исходные file_id, если для них была создана копия.Пример запроса
{
"chat_id": "6f6fdb2f-7d0b-4c34-b6fd-1fbcf40d37ef",
"message_type": "Regular",
"text": "Добрый день",
"file_ids": [
101,
102
],
"external_message_id": "msg-15001"
}
Выходные параметры
| Название | Тип данных | Описание |
|---|---|---|
| result.new_uuid | String | UUID созданного сообщения |
Пример ответа
{
"ok": true,
"result": {
"new_uuid": "9beec41f-6ef5-4e87-b4ea-05895cff2c54"
}
}