n8n-nodes-vk-community
v0.1.2
Published
n8n community nodes for VK Community (VKontakte): messages, wall posts, and Callback API triggers
Maintainers
Keywords
Readme
🚀 Быстрый старт
Установка
☁️ n8n Cloud
- Settings → Community Nodes
- Install a community node
- Введите
n8n-nodes-vk-community - 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.
Сервисный ключ нужен для операции Get Posts (получение постов со стены). VK не позволяет читать стену с токеном сообщества (ошибка 27).
Как получить:
- Перейдите на https://dev.vk.com → Мои приложения
- Если нет приложения — создайте новое (тип: Standalone)
- Откройте Настройки приложения
- Скопируйте Сервисный ключ доступа
⚠️ Если вы не используете операцию Get Posts — это поле можно оставить пустым.
Сообщество → Управление → Работа с API → Callback API
→ «Строка, которую должен вернуть сервер»Это короткий код вида a1b2c3d4. Нужен только для нода VK Community Trigger.
💬 Нод VK Community
Основной нод для действий с VK API. Работает с двумя ресурсами:
Сообщения (Message)
Отправляет сообщение от имени сообщества.
| Параметр | Что указать | |----------|-------------| | 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 (серый).
| Параметр | Описание | |----------|----------| | Peer ID | ID собеседника | | Count | Сколько сообщений вернуть (макс. 200) | | Offset | Пропустить N сообщений (для пагинации) |
Стена (Wall)
| Параметр | Что указать |
|----------|-------------|
| 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() }}
⚠️ Требуется Service Key! Метод
wall.getне работает с токеном сообщества (ограничение VK API, ошибка 27). Заполните поле Service Key в credentials.
| Параметр | Описание |
|----------|----------|
| Owner ID | ID владельца стены (для сообщества: -group_id) |
| Count | Количество постов (макс. 100) |
| Offset | Смещение для пагинации |
| Параметр | Описание | |----------|----------| | Owner ID | ID владельца стены | | Post ID | ID поста (можно получить из Create Post или Get Posts) | | Message | Новый текст | | Attachments | Новые вложения (заменят существующие) |
| Параметр | Описание | |----------|----------| | 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❗ Частые проблемы и решения
- Убедитесь, что вы используете токен сообщества, а не личный токен
- Проверьте, не отозван ли токен: Сообщество → Управление → Работа с 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+ |
