Skip to content

VK (ВКонтакте)

OPORA поддерживает VK messenger через Callback API (группа → сервис-аккаунт → OPORA webhook). Подходит для сообществ: отвечать клиентам из сообщения сообщества, рассылать уведомления подписчикам чата сообщества.

У вас должна быть группа VK (паблик / бизнес-страница / мероприятие):

  1. Перейдите в сообщество → УправлениеНастройки
  2. «Сообщения» → включите «Сообщения сообщества» (если выключены)
  3. «Работа с API»«Создать ключ»
  4. Скопируйте access_token группы

SettingsSecrets:

  • vk-group-token: group access_token
  • vk-group-id: id сообщества (число, отображается в URL: vk.com/club<id>)
  • vk-callback-secret: произвольная строка, openssl rand -hex 16, для валидации webhook’а

В сообществе VK:

  1. Настройки → Работа с API → Callback API
  2. Адрес: URL OPORA webhook’а (после publish’а workflow’а с vk.webhook.trigger)
  3. Секретный ключ: значение вашего vk-callback-secret secret’а
  4. Строка подтверждения: VK покажет 7-значный код — нужен для first-time-handshake’а
  1. Типы событий: отметьте нужные (чаще всего message_new, message_reply, group_join, wall_post_new)
НодаЧто делает
vk.webhook.triggerIncoming events с body.secret validation
vk.message.sendОтправка сообщения (peerId / userId / chatId routing)
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}}

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).

  • Attachments (photos, docs, stickers) в outbound’е — через API можно, но отдельная iteration’а
  • Keyboards / inline buttons
  • Pinning сообщений
  • Group events beyond messages (wall_post_new и т.д. работают как trigger, но dedicated-ноды для response’а нет)

Добавим по demand’у.

  • VK WorkSpace / VK Teams — enterprise-мессенджер VK (отдельный API, нода vkteams.message.send; dedicated guide в подготовке, см. providers matrix)
  • Telegram — для B2C аудитории часто лучше Telegram
  • MAX — новый российский мессенджер, aналогичная структура