Text
Работаетmessage.type = text, message.text содержит текст входящего сообщения из VK Callback API message_new.
vk
VK в Bridge сейчас доступен как vk_community: подключение по community access token и group id/short name, входящие события через Callback API и единый outbound API. Уже подтверждены inbound text/photo/voice/document и outbound text/photo/video/document/voice.
Connect
Клиент подключает канал в кабинете. После статуса connected входящие события идут в webhook, а outbound API начинает принимать отправку в этот канал.
Шаг 1
Пользователь создает VK-канал в /my/channels.
Шаг 2
Пользователь вставляет community token и ID, короткое имя или ссылку сообщества.
Шаг 3
Bridge валидирует сообщество и показывает webhook URL.
Шаг 4
Пользователь копирует confirmation string из VK Callback API и сохраняет ее в Bridge.
Шаг 5
Пользователь вставляет URL в VK Callback API, нажимает подтверждение и получает confirmation callback.
Шаг 6
После confirmation Bridge переводит канал в connected и включает message_new для найденного callback server.
Inbound
message.type = text, message.text содержит текст входящего сообщения из VK Callback API message_new.
first_name, last_name, username/screen_name, display_name, avatar подтягиваются best-effort через users.get. phone обычно недоступен.
Bridge best-effort извлекает message.reply_to из reply_message и message.forwarded из fwd_messages. Если пользователь добавил comment к пересылке, comment остается в message.text, а исходный текст forwarded message приходит в message.forwarded.message.text. Reply и forwarded marker уже подтверждены на prod smoke.
Bridge уже best-effort нормализует photo, video, audio, voice, sticker, document из VK Callback API, сохраняет файлы в storage и отдает их через signed /v1/attachments/:id URL. На prod уже подтверждены text, photo, voice и document.
Outbound
Для outbound используйте POST /v1/messages, bearer API key со scope messages:send, channel_id подключенного канала и provider chat id из inbound webhook.
POST /v1/messages с content.type = text отправляет сообщение через VK messages.send в peer_id, который приходит в data.chat.external_id.
Bridge уже прокидывает reply_to.provider_message_id в VK messages.send(reply_to = ...); provider-side send подтвержден на prod smoke.
Bridge уже отправляет media через unified API: photo идет через VK photo upload flow, voice - через audio_message upload flow, video и document/file - через VK docs upload flow. Несколько вложений отправляются последовательно в рамках одного API-запроса.
Проверка
message.inbound по VK Callback API message_new.message.forwarded.message.text./v1/messages и VK messages.send./v1/messages запросе.API notes
Пример recipient
123456789
Для ответа используйте data.chat.external_id из inbound webhook: это VK peer_id.
Current transport mode для vk_community - Callback API.
Group ID в этом connector лучше считать обязательным: используйте numeric id, club..., short name или ссылку сообщества.
Community token должен иметь права на сообщения сообщества.
Confirmation string Bridge не генерирует: ее нужно взять из VK Callback API и сохранить в Bridge до нажатия кнопки подтверждения в VK.
Для inbound callback Bridge дополнительно пытается гидрировать полный VK message через messages.getByConversationMessageId или messages.getById, чтобы добрать reply_message, fwd_messages и media metadata, если исходный callback пришел обрезанным.
Для пересылки с комментарием в VK message.text хранит именно comment пользователя, а текст исходного forwarded message выносится в message.forwarded.message.text.
VK media inbound уже подтвержден на prod для photo, voice и document: Bridge скачивает file-like вложения, сохраняет их в storage и отдает через signed attachment URL.
VK media outbound уже подтвержден на prod для photo, video, document/file и voice. voice идет через audio_message upload flow, audio и sticker сейчас явно не поддержаны.
Channels