Перейти к основному содержимому
Версия: 2026.2.4

Сообщения

Раздел «Сообщения» — отправка, редактирование и удаление сообщений в текстовом канале, получение истории сообщений, индикатор набора текста и реакции. Это пользовательский аналог методов SendMessage/UpdateMessage/DeleteMessage/Typing/AddReaction/RemoveReaction из Bot API — семантика та же, разница только в том, что здесь действует сам пользователь через свой accessToken, а не бот через токен бота.

Все запросы этого раздела требуют заголовок Authorization: Bearer <accessToken>.

Объект Message​

ПолеТипОписание
idstringИдентификатор сообщения.
channelIdstringКанал, в котором отправлено сообщение.
authorUserАвтор сообщения.
contentstringТекст сообщения.
createdAtstringКогда сообщение создано (ISO8601).
updatedAtstringКогда сообщение последний раз редактировалось (ISO8601).
isEditedbooleanБыло ли сообщение отредактировано.
isDeletedbooleanПомечено ли сообщение как удалённое.
replyTostringId сообщения, на которое отвечает это сообщение — пусто, если это не ответ.
forwardedFrom?stringЕсли сообщение создано через «Переслать сообщение» — id исходного сообщения. Не заполнено у обычных сообщений (в отличие от replyTo, где пустая строка означает «не ответ», здесь поле явно отсутствует).
attachmentsarrayВложения сообщения, см. «Вложения».
reactionsobjectРеакции на сообщение: ключ — emoji, значение — { userIds: [...] }.
interactionId?stringЕсли сообщение — ответ бота на interaction: id этого interaction'а.
interactionCommandName?stringИмя команды, вызвавшей interaction.
interactionUserId?stringПользователь, вызвавший interaction.
componentsJson?stringJSON компонентов (кнопки/меню), прикреплённых к сообщению — см. «Компоненты и модальные окна».

Объект ошибки​

При любой ошибке вместо 200 OK возвращается default-ответ:

ПолеТипОписание
codeintegerЧисловой код ошибки (google.rpc.Code).
messagestringЧеловекочитаемое описание ошибки.
detailsarrayДополнительные структурированные детали ошибки (google.protobuf.Any); в большинстве случаев пуст.

Отправить сообщение​

POST/v1/messages

Отправляет сообщение в текстовый канал.

Тело запроса​

ПолеТипОписание
channelIdstringКанал, в который отправляется сообщение.
contentstringТекст сообщения.
replyTo?stringId сообщения, на которое нужно ответить.
attachmentIds?array<string>Id уже загруженных вложений (см. «Вложения»), которые нужно прикрепить к сообщению.

{
"channelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"content": "привет!",
"attachmentIds": []
}

Ответ 200 OK​

Объект Message.

Ответ default (ошибка)​

Стандартный объект ошибки.


Изменить сообщение​

POST/v1/messages/{id}

Редактирует ранее отправленное сообщение. Редактировать можно только собственные сообщения.

Параметры пути​

ПолеТипОписание
idstringИдентификатор сообщения.

Тело запроса​

ПолеТипОписание
contentstringНовый текст сообщения.

Ответ 200 OK​

Обновлённый объект Message (с isEdited: true).

Ответ default (ошибка)​

Стандартный объект ошибки.


Удалить сообщение​

POST/v1/messages/{id}:delete

Удаляет сообщение.

Параметры пути​

ПолеТипОписание
idstringИдентификатор сообщения.

Ответ 200 OK​

ПолеТипОписание
idstringId удалённого сообщения.
successbooleanПризнак успешного удаления.

Ответ default (ошибка)​

Стандартный объект ошибки.


Получить сообщение​

GET/v1/messages/{messageId}

Возвращает одно сообщение по его id — полезно, когда известен только messageId (например, из уведомления или ссылки), без похода за всей историей канала.

Параметры пути​

ПолеТипОписание
messageIdstringИдентификатор сообщения.

Ответ 200 OK​

Объект Message.

Ответ default (ошибка)​

Стандартный объект ошибки.


Переслать сообщение​

POST/v1/messages:forward

Пересылает сообщение в один или несколько каналов одним запросом. Пересланное сообщение — это новое сообщение с полем forwardedFrom, указывающим на исходное; исходное сообщение не изменяется.

Тело запроса​

ПолеТипОписание
sourceMessageIdstringId пересылаемого сообщения.
destinationChannelIdsarray<string>Каналы, в которые нужно переслать сообщение.
idempotencyKeystringКлюч идемпотентности — повторный запрос с тем же ключом не создаёт дублей.
{
"sourceMessageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"destinationChannelIds": ["a1b2c3d4-5e6f-4789-9abc-def012345678"],
"idempotencyKey": "b7e1c9a0-2f3d-4a5b-9c6d-7e8f9a0b1c2d"
}

Ответ 200 OK​

ПолеТипОписание
resultsarrayРезультат пересылки в каждый из destinationChannelIds, по одному объекту ForwardMessageResult на канал.

Объект ForwardMessageResult

ПолеТипОписание
channelIdstringКанал, в который выполнялась пересылка.
successbooleanУспешна ли пересылка в этот канал.
errorMessagestringПричина ошибки, если success: false.
messageMessageСозданное пересланное сообщение, если success: true.

Пересылка обрабатывается по каждому каналу независимо — ошибка в одном канале (например, нет доступа) не отменяет пересылку в остальные.

Ответ default (ошибка)​

Стандартный объект ошибки — например, если исходное сообщение не найдено или удалено.


Получить сообщения вокруг​

GET/v1/messages/channel/{channelId}/around/{messageId}

Возвращает окно сообщений вокруг указанного — например, чтобы открыть канал сразу на сообщении из пуш-уведомления или ссылки, с некоторым контекстом до и после.

Параметры пути​

ПолеТипОписание
channelIdstringКанал, в котором ищем.
messageIdstringСообщение, вокруг которого нужно получить контекст.

Query-параметры​

ПолеТипОписание
before?integerСколько сообщений до целевого вернуть.
after?integerСколько сообщений после целевого вернуть.

Ответ 200 OK​

ПолеТипОписание
messagesarrayСписок объектов Message, включая целевое.
targetFoundbooleanfalse, если messageId не существует, не принадлежит этому каналу или удалено — в этом случае messages возвращает лишь то, что удалось получить без учёта позиции цели.

Ответ default (ошибка)​

Стандартный объект ошибки.


Получить историю канала​

GET/v1/messages/channel/{channelId}

Возвращает сообщения канала постранично, от новых к старым.

Параметры пути​

ПолеТипОписание
channelIdstringКанал, чью историю нужно получить.

Query-параметры​

ПолеТипОписание
limit?integerСколько сообщений вернуть за один запрос. По умолчанию 50.
beforeId?stringId сообщения, начиная с которого (не включая его) нужно вернуть более старые сообщения — используется для пагинации «назад по истории».

Ответ 200 OK​

ПолеТипОписание
messagesarrayСписок объектов Message.

Ответ default (ошибка)​

Стандартный объект ошибки.


Индикатор набора текста​

POST/v1/messages/channel/{channelId}/typing

Сообщает остальным участникам канала, что пользователь сейчас печатает — простой булев флаг, исчезает сам через несколько секунд, как и у ботов (см. «Typing» в Bot API).

Параметры пути​

ПолеТипОписание
channelIdstringКанал, в котором пользователь печатает.

Тело запроса​

ПолеТипОписание
isTypingbooleantrue — начать показывать индикатор, false — снять его раньше таймаута.

Ответ 200 OK​

ПолеТипОписание
successbooleanВсегда true при успешном ответе.

Ответ default (ошибка)​

Стандартный объект ошибки.


Добавить реакцию​

POST/v1/messages/{messageId}/reactions

Добавляет emoji-реакцию текущего пользователя на сообщение.

Параметры пути​

ПолеТипОписание
messageIdstringСообщение, на которое ставится реакция.

Тело запроса​

ПолеТипОписание
emojistringEmoji реакции.

Ответ 200 OK​

Обновлённый объект Message с добавленной реакцией в reactions.

Ответ default (ошибка)​

Стандартный объект ошибки.


Убрать реакцию​

POST/v1/messages/{messageId}/reactions:remove

Убирает ранее поставленную текущим пользователем реакцию с сообщения.

Параметры пути​

ПолеТипОписание
messageIdstringСообщение, с которого убирается реакция.

Тело запроса​

ПолеТипОписание
emojistringEmoji реакции, которую нужно убрать.

Ответ 200 OK​

Обновлённый объект Message без этой реакции текущего пользователя.

Ответ default (ошибка)​

Стандартный объект ошибки.