Сообщения
API для работы с сообщениями в каналах типа CHAT. Для каналов типа CHANNEL и FORUM используются Посты.
MessageResponse
{ "id": "message-uuid", "channelId": "channel-uuid", "authorId": "user-uuid", "authorFederation": "https://auth.example.com", "content": "Привет!", "parentMessageId": null, "replyCount": 3, "createdAt": "2025-01-15T10:30:00Z", "editedAt": null }
Получение сообщений
GET /channels/{channelId}/messages
Требуется членство в канале и право READ_MESSAGES. Канал должен быть типа CHAT.
Ответ (200): массив MessageResponse.
Режим тредов
В каналах с chatMode: THREAD сообщения могут быть корневыми или ответами в треде:
rootOnly=true— возвращает только корневые сообщения (у которыхparentMessageId = null)rootOnly=false(по умолчанию) — все сообщения в хронологическом порядке
Получение ответов в треде
GET /messages/{messageId}/replies
Возвращает ответы на конкретное сообщение. Требуется членство в канале.
Ответ (200): массив MessageResponse, отсортированный по дате (ASC).
Отправка сообщения
POST /channels/{channelId}/messages
Требуется членство в канале и право SEND_MESSAGES. Канал должен быть типа CHAT.
Тело запроса:
{ "content": "Привет!", "parentMessageId": "parent-message-uuid" }
Ответ (201): MessageResponse.
Рассылается WebSocket-событие message.new.
Правила тредов
parentMessageIdпринимается только в каналах сchatMode: THREADРодительское сообщение должно быть в том же канале
Вложенные треды не поддерживаются (нельзя ответить на ответ)
Ошибки:
Редактирование сообщения
PUT /channels/{channelId}/messages/{messageId}
Только автор. Тело: {"content": "Новый текст"}.
Ответ (200): обновлённый MessageResponse. Событие message.edited.
Удаление сообщения
DELETE /channels/{channelId}/messages/{messageId}
Автор или пользователь с правом MANAGE_MESSAGES.
Ответ (200): SuccessResponse. Событие message.deleted.