VK (ВКонтакте)
OPORA поддерживает VK messenger через Callback API (группа → сервис-аккаунт → OPORA webhook). Подходит для сообществ: отвечать клиентам из сообщения сообщества, рассылать уведомления подписчикам чата сообщества.
1. Сообщество VK + group token
Section titled “1. Сообщество VK + group token”У вас должна быть группа VK (паблик / бизнес-страница / мероприятие):
- Перейдите в сообщество → Управление → Настройки
- «Сообщения» → включите «Сообщения сообщества» (если выключены)
- «Работа с API» → «Создать ключ»
- Скопируйте
access_tokenгруппы
2. Сохраните в OPORA
Section titled “2. Сохраните в OPORA”Settings → Secrets:
vk-group-token: group access_tokenvk-group-id: id сообщества (число, отображается в URL:vk.com/club<id>)vk-callback-secret: произвольная строка,openssl rand -hex 16, для валидации webhook’а
3. Настройте Callback API
Section titled “3. Настройте Callback API”В сообществе VK:
- Настройки → Работа с API → Callback API
- Адрес: URL OPORA webhook’а (после publish’а workflow’а с
vk.webhook.trigger) - Секретный ключ: значение вашего
vk-callback-secretsecret’а - Строка подтверждения: VK покажет 7-значный код — нужен для first-time-handshake’а
- Типы событий: отметьте нужные (чаще всего
message_new,message_reply,group_join,wall_post_new)
4. Ноды
Section titled “4. Ноды”| Нода | Что делает |
|---|---|
vk.webhook.trigger | Incoming events с body.secret validation |
vk.message.send | Отправка сообщения (peerId / userId / chatId routing) |
5. Пример: автоответчик
Section titled “5. Пример: автоответчик”vk.webhook.trigger (event: message_new) ↓ai.chat system = "Ты помощник магазина. Отвечай коротко." input = "{{trigger.object.message.text}}" memory_key = "vk:{{trigger.object.message.from_id}}" ↓vk.message.send peer_id = {{trigger.object.message.peer_id}} message = {{chat.output}}Peer ID conventions
Section titled “Peer ID conventions”VK использует разные типы peer_id:
user_id(положительное число < 2e9) — ЛС с пользователемchat_idкак2e9 + chatId(например,2000000001дляchatId = 1) — беседа в сообществеgroup_id(отрицательное) — ЛС от имени группы
OPORA автоматически normalize’ит — в node можно передавать либо
peer_id напрямую, либо user_id / chat_id отдельно (тогда node
соберёт peer_id по конвенции VK).
Что не реализовано
Section titled “Что не реализовано”- Attachments (photos, docs, stickers) в outbound’е — через API можно, но отдельная iteration’а
- Keyboards / inline buttons
- Pinning сообщений
- Group events beyond messages (wall_post_new и т.д. работают как trigger, но dedicated-ноды для response’а нет)
Добавим по demand’у.
Связанное
Section titled “Связанное”- VK WorkSpace / VK Teams — enterprise-мессенджер VK
(отдельный API, нода
vkteams.message.send; dedicated guide в подготовке, см. providers matrix) - Telegram — для B2C аудитории часто лучше Telegram
- MAX — новый российский мессенджер, aналогичная структура