vkontakte-messages

VK (VKontakte) nodes for n8n: trigger and messages

Package Information

Released: 7 mo ago
Downloads: 30 weekly / 95 monthly
Latest Version: 0.3.2
Author: Andrey

Documentation

VK Messages для n8n

Кастомный пакет нод для n8n, который позволяет:

  • принимать сообщения во VK‑сообщество через Callback API (VK Trigger);
  • отправлять сообщения и показывать “печатает…” через одну ноду (VK Messages).

Пакет публикуется как n8n-nodes-vkontakte-messages.


Установка

Через npm в папку custom‑нод

  1. Создай папку для кастомных нод n8n (если ещё нет):
mkdir -p ~/.n8n/custom
cd ~/.n8n/custom
  1. Установи пакет:
npm install n8n-nodes-vkontakte-messages
  1. Убедись, что n8n смотрит в эту папку. Например, для Docker n8n:
services:
  n8n:
    image: n8nio/n8n
    environment:
      - N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
    volumes:
      - ./n8n_data:/home/node/.n8n
  1. Перезапусти n8n.

После перезапуска в панели нод появятся:

  • VK Trigger
  • VK Messages
  • креды VK API.

Настройка VK API (credentials VK API)

В n8n открой раздел Credentials и создай новые креды типа VK API:

  • Access Token – токен сообщества или пользователя с правами на работу с сообщениями (messages).
  • API Version – версия VK API, по умолчанию 5.199.

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


Настройка VK Callback API (сервер событий)

  1. В VK зайди в настройки сообщества:

    • Управление → Настройки → API → Callback API.
  2. В n8n создай новый workflow и добавь ноду VK Trigger.

    • Нажми на ноду и скопируй Production URL (или Test URL) – это будет адрес вебхука.
  3. В VK:

    • Во вкладке Серверы создай новый сервер.
    • В поле Адрес сервера вставь URL вебхука из ноды VK Trigger.
    • Сохрани.
  4. VK покажет Код подтверждения (Confirmation code).

    • Скопируй его.
    • В ноде VK Trigger заполни поле Confirmation Code этим значением.
  5. В VK нажми Подтвердить сервер.

    • Нода ответит кодом подтверждения.
    • Статус сервера станет “подтверждён”.
  6. Во вкладке Типы событий включи как минимум:

    • Входящие сообщения (message_new).

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


Нода VK Trigger

Задача: запускать workflow при новых сообщениях во VK‑сообщество.

Параметры:

  • Confirmation Code – строка из настроек Callback API в VK.

Поведение:

  • Если VK шлёт type: "confirmation" – нода отвечает кодом подтверждения (для привязки сервера).
  • Для всех остальных событий:
    • Нода отвечает ok (как требует VK Callback API).
    • Если type === "message_new", в workflow передаётся JSON, иначе – нет запуска.

Выходные данные (Output ноды при message_new):

{
  "type": "message_new",
  "group_id": 123456789,
  "object": { ...полный объект VK... },
  "message": { ...вложенный объект сообщения из object.message... }
}

Именно из message удобно брать:

  • peer_id – чтобы ответить пользователю/в чат;
  • from_id – автор сообщения;
  • text – текст сообщения;
  • другие поля VK (attachments и т.п.).

Нода VK Messages

Задача: одна нода для:

  • отправки сообщений (messages.send);
  • установки активности (messages.setActivity – эффект “печатает…”).

Параметры ноды:

  • Operation

    • Send Message – отправка текста.
    • Set Typing Activity – показать набор текста/аудио.
  • Peer ID

    • ID пользователя или чата VK.
    • Для ответа на входящее сообщение обычно:
      ={{ $json["message"]["peer_id"] }}
      если ноду подключать прямо после VK Trigger.

Operation: Send Message

Дополнительные поля:

  • Message – текст сообщения.
  • Additional Fields:
    • Attachment – вложения в формате VK (например, photo123_456,doc123_789).
    • Keyboard (JSON) – строка с JSON‑описанием клавиатуры.
    • Disable Links Parsing – отключить парсинг ссылок.

Отправляется запрос:

  • POST https://api.vk.ru/method/messages.send
  • Параметры:
    • peer_id
    • message
    • random_id (генерируется автоматически)
    • плюс все дополнительные поля
    • access_token и v добавляются из кредов VK API.

Ответ VK возвращается в json следующего item‑а.

Operation: Set Typing Activity

Дополнительные поля:

  • Activity Type:
    • typing – “печатает…”
    • audiomessage – “записывает голосовое сообщение”.

Отправляется запрос:

  • POST https://api.vk.ru/method/messages.setActivity
  • Параметры:
    • peer_id
    • type
    • access_token и v из кредов.

Ответ VK также возвращается в json.


Пример простого сценария

Задача: поймать входящее сообщение в сообщество и ответить пользователю.

  1. Воркфлоу:

    • Нода VK Trigger.
    • Следующая нода VK Messages.
  2. В VK Messages:

    • Operation: Send Message
    • Peer ID:
      ={{ $json["message"]["peer_id"] }}
    • Message: например, Спасибо за сообщение!.
  3. Запусти workflow (Execute workflow), затем напиши в сообщество.

  4. Сообщение от пользователя придёт в VK Trigger, а VK Messages отправит ответ.


Лицензия

MIT

Discussion