vk-community

n8n community nodes for VK Community (VKontakte): messages, wall posts, and Callback API triggers

Package Information

Downloads: 30 weekly / 352 monthly
Latest Version: 0.1.2

Documentation

VK Logo

n8n-nodes-vk-community

Ноды для автоматизации сообществ ВКонтакте в n8n
Отправка сообщений · Управление стеной · Callback API триггер

npm version license n8n community node


🚀 Быстрый старт

Установка

☁️ n8n Cloud

  1. SettingsCommunity Nodes
  2. Install a community node
  3. Введите n8n-nodes-vk-community
  4. Install

🖥️ Self-hosted

cd ~/.n8n
npm install n8n-nodes-vk-community
# Перезапустите n8n

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

Нод Для чего
VK Community Отправка сообщений, публикация/редактирование/удаление постов
VK Community Trigger Приём событий от VK через Callback API (входящие сообщения, новые посты и др.)

🔑 Настройка подключения

Всё начинается с токена сообщества. Без него ничего не заработает.

Шаг 1 — Получите токен в ВКонтакте

Сообщество → ⚙️ Управление → Работа с API → Ключи доступа → Создать ключ

Какие права выбрать:

Право Зачем
✅ Сообщения сообщества Для отправки и получения сообщений
✅ Стена Для постов: создание, редактирование, удаление

Шаг 2 — Создайте credential в n8n

Credentials → Add Credential → VK Community API

Поле Что вписать Обязательно?
Community Access Token Токен из шага 1 (vk1.a.xxxxx...)
API Version Версия API, по умолчанию 5.199
Service Key Сервисный ключ приложения VK (для операции Get Posts) Для Get Posts
Confirmation String Строка подтверждения Callback API Только для Trigger
Secret Key Секретный ключ для верификации запросов Нет

💡 Нажмите Test — если токен валиден, увидите зелёную галочку. Тест вызывает groups.getById.

🔑 Где взять Service Key (сервисный ключ)?

Сервисный ключ нужен для операции Get Posts (получение постов со стены). VK не позволяет читать стену с токеном сообщества (ошибка 27).

Как получить:

  1. Перейдите на https://dev.vk.comМои приложения
  2. Если нет приложения — создайте новое (тип: Standalone)
  3. Откройте Настройки приложения
  4. Скопируйте Сервисный ключ доступа

⚠️ Если вы не используете операцию Get Posts — это поле можно оставить пустым.

🔍 Где взять Confirmation String?
Сообщество → Управление → Работа с API → Callback API
→ «Строка, которую должен вернуть сервер»

Это короткий код вида a1b2c3d4. Нужен только для нода VK Community Trigger.


💬 Нод VK Community

Основной нод для действий с VK API. Работает с двумя ресурсами:

Сообщения (Message)

📤 Send — отправить сообщение

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

Параметр Что указать
Peer ID Кому отправить (см. таблицу ниже)
Message Text Текст сообщения

Дополнительные поля (Additional Fields):

Параметр Описание
Attachment Вложения: photo-123456_789012 (через запятую, если несколько)
Keyboard (JSON) Клавиатура бота
Don't Parse Links Не показывать превью ссылок

🆔 Как определить Peer ID?

Куда отправляем Как вычислить Пример
👤 Пользователю Просто его ID 12345678
👥 В беседу 2000000000 + chat_id 2000000001
🏢 Сообществу -group_id -198765432

⚠️ Пользователь должен сам написать первым! ВКонтакте запрещает отправку сообщений пользователям, которые не начинали диалог с сообществом.

⌨️ Пример: inline-клавиатура бота

Вставьте в поле Keyboard (JSON):

{
  "inline": true,
  "buttons": [[
    {
      "action": { "type": "text", "label": "✅ Да", "payload": "{\"btn\":\"yes\"}" },
      "color": "positive"
    },
    {
      "action": { "type": "text", "label": "❌ Нет", "payload": "{\"btn\":\"no\"}" },
      "color": "negative"
    }
  ]]
}

Доступные цвета кнопок: positive (зелёный), negative (красный), primary (синий), secondary (серый).

📥 Get History — история переписки
Параметр Описание
Peer ID ID собеседника
Count Сколько сообщений вернуть (макс. 200)
Offset Пропустить N сообщений (для пагинации)

Стена (Wall)

📝 Create Post — опубликовать пост
Параметр Что указать
Owner ID ID сообщества со знаком минус: -123456
Message Текст поста

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

Параметр Описание
From Group true — от имени сообщества (по умолч.), false — от вашего имени
Attachments Вложения через запятую: photo-123_456,video-123_789
Publish Date UNIX-timestamp для отложенного поста. 0 = сейчас

💡 Отложенный постинг: чтобы опубликовать пост 1 марта 2026 в 12:00 МСК, укажите 1772186400.
Можно вычислить через выражение n8n: {{ DateTime.fromISO('2026-03-01T12:00:00+03:00').toSeconds() }}

📋 Get Posts — получить посты со стены

⚠️ Требуется Service Key! Метод wall.get не работает с токеном сообщества (ограничение VK API, ошибка 27). Заполните поле Service Key в credentials.

Параметр Описание
Owner ID ID владельца стены (для сообщества: -group_id)
Count Количество постов (макс. 100)
Offset Смещение для пагинации
✏️ Edit Post — редактировать пост
Параметр Описание
Owner ID ID владельца стены
Post ID ID поста (можно получить из Create Post или Get Posts)
Message Новый текст
Attachments Новые вложения (заменят существующие)
🗑️ Delete Post — удалить пост
Параметр Описание
Owner ID ID владельца стены
Post ID ID поста для удаления

⚡ Нод VK Community Trigger

Принимает события от ВКонтакте через Callback API и запускает workflow.

Поддерживаемые события

Событие Когда срабатывает
💬 message_new Пользователь написал сообщение сообществу
↩️ message_reply Сообщество отправило сообщение
✏️ message_edit Сообщение было отредактировано
📝 wall_post_new Опубликован новый пост на стене
🔄 wall_repost Пост репостнули

🔧 Настройка Callback API — пошагово

Это самая ответственная часть. Порядок действий важен!

┌─────────────────────────────────────────────────────────┐
│  1. Заполните credential (токен + confirmation string)  │
│                         ↓                               │
│  2. Создайте workflow с VK Community Trigger             │
│                         ↓                               │
│  3. Активируйте workflow (Active → On)                  │
│                         ↓                               │
│  4. Скопируйте webhook URL                              │
│                         ↓                               │
│  5. Вставьте URL в VK → Callback API → Подтвердите      │
│                         ↓                               │
│  6. Включите нужные типы событий в VK                   │
└─────────────────────────────────────────────────────────┘

Подробнее:

1. Убедитесь, что в credential заполнены Community Access Token и Confirmation String.

2-3. Создайте workflow, добавьте нод VK Community Trigger, выберите события, подключите credential. Активируйте workflow.

4. После активации n8n покажет Production URL вида:

https://your-n8n.com/webhook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/webhook

⚠️ Workflow ОБЯЗАТЕЛЬНО должен быть активен до настройки URL в VK. Иначе VK не сможет пройти подтверждение — webhook не ответит.

5. В ВКонтакте:

Сообщество → Управление → Работа с API → Callback API → вкладка «Настройки сервера»

Вставьте URL → нажмите Подтвердить. При успехе появится ✅.

6. Перейдите во вкладку Типы событий и включите те же события, что выбрали в нод (например, «Входящее сообщение» для message_new).


📤 Что приходит в workflow

При каждом событии триггер выдаёт:

{
  "eventType": "message_new",
  "groupId": 123456789,
  "eventId": "abc123def456",
  "object": {
    "message": {
      "id": 100,
      "from_id": 87654321,
      "peer_id": 87654321,
      "text": "Привет, бот!"
    }
  },
  "_rawBody": { "..." }
}
Поле Описание
eventType Тип события: message_new, wall_post_new и т.д.
groupId ID вашего сообщества
object Данные события (сообщение, пост...)
_rawBody Полное тело запроса от VK

Полезные выражения для следующих нод:

  • Текст сообщения: {{ $json.object.message.text }}
  • ID отправителя: {{ $json.object.message.from_id }}
  • Peer ID для ответа: {{ $json.object.message.peer_id }}

🛠 Примеры workflow

🤖 Эхо-бот

Отвечает на каждое сообщение, повторяя текст:

[VK Community Trigger] → [VK Community]
     message_new            Message → Send

Настройка VK Community:

  • Peer ID: {{ $json.object.message.peer_id }}
  • Message Text: Вы написали: {{ $json.object.message.text }}

📅 Автопостинг по расписанию

Каждый день публикует пост с контентом из внешнего API:

[Schedule Trigger] → [HTTP Request] → [VK Community]
   каждый день       получить данные    Wall → Create Post

📲 Пересылка VK-сообщений в Telegram

[VK Community Trigger] → [Telegram]
     message_new          Send Message

Текст для Telegram: Новое сообщение VK от {{ $json.object.message.from_id }}: {{ $json.object.message.text }}


🔔 Уведомление о новых постах в Slack

[VK Community Trigger] → [Slack]
     wall_post_new        Send Message

❗ Частые проблемы и решения

🔴 «User authorization failed: invalid access_token»
  • Убедитесь, что вы используете токен сообщества, а не личный токен
  • Проверьте, не отозван ли токен: Сообщество → Управление → Работа с API → Ключи доступа
  • Создайте новый ключ, если старый скомпрометирован
🔴 «Access denied: no access to call this method»
  • При создании токена не были выбраны нужные права
  • Для сообщений → право «Сообщения сообщества»
  • Для стены → право «Стена»
  • Пересоздайте токен с правильными правами
🔴 «Can't send messages for users without permission»

ВКонтакте запрещает отправку первого сообщения пользователю. Решения:

  1. Пользователь должен сам написать сообществу первым
  2. Включите сообщения сообщества: Управление → Сообщения → Сообщения сообщества → Включены
  3. Для рассылок используйте только тех пользователей, которые уже писали вам
🔴 Callback API: «Сервер не ответил» / не удаётся подтвердить

Чек-лист:

  • Workflow активен в n8n?
  • Confirmation String в credential совпадает с тем, что в настройках VK?
  • URL вебхука правильный и доступен извне?
  • n8n доступен по HTTPS? (VK не работает с HTTP)
  • Нет файрволла/прокси, блокирующего запросы от VK?

VK ожидает ответ в течение 5 секунд. Если ваш сервер отвечает дольше — подтверждение не пройдёт.

🔴 Триггер не срабатывает (подтверждение прошло, но событий нет)
  • Проверьте, что в VK включены нужные типы событий (Callback API → Типы событий)
  • Проверьте, что в ноде выбраны те же события
  • Если задан Secret Key — он должен совпадать в credential и в VK

📋 Совместимость

Версия
n8n 1.0+
VK API 5.199 (настраивается)
Node.js 18+

📄 Лицензия

MIT

Discussion