Уявіть: ваш бізнес щодня втрачає до 30% лідів, тому що менеджери не встигають відповідати в месенджері. Чат-бот для VK вирішує цю проблему — обробляє замовлення, відповідає на запитання та передає складні запити операторам. Наприклад, для мережі кав'ярень ми реалізували бота, який приймає замовлення, інтегрується з CRM і скоротив час обробки на 60%. Це допомогло збільшити конверсію на 25%. За п'ять років ми розробили понад 50 таких ботів для e-commerce, послуг і медіа, і кожен витримує до 10 000 повідомлень на хвилину. Економія на операційних витратах становить десятки тисяч гривень щомісяця.
Використовуємо сучасний стек: Python FastAPI, vk_api, JavaScript для Mini Apps. Оцінимо ваш проєкт за один день — просто напишіть нам.
Розробка чат-бота для VK: особливості та стек
Як вибрати між Callback API та Long Poll? — розробка мобільного чату
Callback API — VK шле POST на ваш HTTPS-сервер при кожній події. Аналог webhook. Підходить для продакшену.
Long Poll — ваш сервер робить GET-запит, який «висить» до появи нової події. Працює без HTTPS, зручний для розробки.
Порівняємо їх у таблиці:
| Параметр | Callback API | Long Poll |
|---|---|---|
| Протокол | HTTPS (POST) | HTTP (GET) |
| Надійність | Висока, з ретраями | Середня, залежить від з'єднання |
| Продакшен | Рекомендується | Тільки для тестів |
| Налаштування | Потрібен сервер із HTTPS | Будь-який сервер |
Для продакшен-ботів ми завжди використовуємо Callback API. Він забезпечує гарантовану доставку та автоматичні повтори при збоях.
Callback API налаштовується в розділі «Управління» → «Робота з API» → «Callback API» групи ВКонтакте. При додаванні VK відправляє confirmation подію — потрібно повернути рядок з налаштувань:
from fastapi import FastAPI, Request
app = FastAPI()
CONFIRMATION_TOKEN = "abc123xyz" # З налаштувань групи
SECRET_KEY = "your_secret" # Для перевірки підпису
@app.post("/vk/webhook")
async def vk_webhook(request: Request):
data = await request.json()
# Перевірка підпису
if data.get("secret") != SECRET_KEY:
return "forbidden"
if data["type"] == "confirmation":
return CONFIRMATION_TOKEN
if data["type"] == "message_new":
message = data["object"]["message"]
await handle_message(message)
return "ok" # VK вимагає саме рядок "ok"
Якщо повернути не "ok" — VK буде повторно слати подію до 3 разів, потім позначить доставку як неуспішну.
Згідно з документацією VK API, Callback API гарантує доставку з повторними спробами.
Як реалізувати відправку повідомлень з клавіатурою?
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
# Через vk_api бібліотеку
vk_session = vk_api.VkApi(token=GROUP_TOKEN)
vk = vk_session.get_api()
def send_message(peer_id: int, text: str, keyboard=None):
params = {
"peer_id": peer_id,
"message": text,
"random_id": 0 # 0 = автоматичний random_id для захисту від дублів
}
if keyboard:
params["keyboard"] = json.dumps(keyboard)
vk.messages.send(**params)
Докладніше про random_id
VK використовує random_id для дедуплікації. Якщо передати 0, система згенерує його автоматично. При повторному виклику з тим же random_id повідомлення не буде надіслано повторно.random_id — важлива деталь: VK дедуплікує повідомлення за (peer_id, random_id). При random_id=0 — автоматично. При фіксованому значенні повторний виклик не створить нове повідомлення — захист від подвійної відправки.
Клавіатури бувають двох видів: звичайна (замінює системну) та inline (кріпиться до повідомлення). Приклад inline-клавіатури:
keyboard = {
"inline": True,
"buttons": [
[
{
"action": {
"type": "text",
"label": "Каталог",
"payload": json.dumps({"command": "catalog"})
},
"color": "primary"
}
]
]
}
Кольори кнопок: primary, secondary, positive, negative. Максимум 4 кнопки в рядку, 10 рядків.
Що таке VK Mini Apps та як їх інтегрувати?
VK Mini Apps — веб-додатки всередині ВКонтакте, аналог Telegram Mini App. SDK: @vkontakte/vk-bridge.
import bridge from '@vkontakte/vk-bridge';
bridge.subscribe((e) => {
if (e.detail.type === 'VKWebAppUpdateConfig') {
// Тема (світла/темна), колірна схема
const scheme = e.detail.data.scheme;
document.body.setAttribute('scheme', scheme);
}
});
// Отримати дані користувача
const userInfo = await bridge.send('VKWebAppGetUserInfo');
// { id, first_name, last_name, photo_200, ... }
vk-bridge дозволяє: отримати дані користувача, відкрити платіжний діалог (VKWebAppOpenPayForm), запитати геолокацію, скопіювати в буфер обміну, відкрити QR-сканер.
Авторизація Mini App: launch_params в URL містять підписані дані (sign поле). Верифікація на сервері через HMAC-SHA256 з ключем API Secret з налаштувань додатку — обов'язкова.
Які типові помилки виникають при розробці?
- Неправильна верифікація запитів. Якщо не перевіряти
secretабо не повертати"ok", VK буде повторювати запити і в підсумку вимкне callback. - Некоректний
random_id. Використання фіксованого значення може призвести до втрати повідомлень. Краще завжди передавати0для автоматичної генерації. - Ігнорування обмежень клавіатури. Максимум 4 кнопки в рядку і 10 рядків. Якщо перевищити, VK поверне помилку.
- Відсутність обробки помилок API. При відправці повідомлення VK може повернути помилку, наприклад, якщо користувач заборонив повідомлення від групи.
Ми на кожному проєкті проводимо аудит коду та тестування на цих кейсах. Хочете уникнути цих помилок? Звертайтеся до нас — допоможемо.
Процес роботи та терміни
| Етап | Тривалість | Результат |
|---|---|---|
| Аналіз вимог | 1–2 дні | Технічне завдання |
| Проектування архітектури | 1–2 дні | Схема бота, вибір стеку |
| Розробка бота | 1–3 тижні | Робочий прототип |
| Інтеграція з VK Mini Apps (якщо потрібно) | +2–4 тижні | Повноцінний додаток |
| Тестування та налагодження | 5–7 днів | Виправлення помилок |
| Розгортання та моніторинг | 1–2 дні | Бот у продакшені |
Орієнтир: бот із клавіатурою — 1–2 тижні, з VK Mini App — 4–8 тижнів.
Що входить у розробку?
- Налаштування групи ВКонтакте та Callback API
- Розробка логіки обробки повідомлень (команди, сценарії)
- Реалізація клавіатур та каруселей
- Інтеграція із зовнішніми сервісами (CRM, бази даних)
- Розробка VK Mini App (якщо потрібно)
- Документація з експлуатації
- Навчання вашої команди
- Технічна підтримка 1 місяць безплатно
Чому обирають нас?
- 5+ років досвіду розробки ботів для VK та інших платформ
- 50+ успішних проєктів для малого та середнього бізнесу
- Сертифіковані розробники з VK API
- Гарантія стабільної роботи та дотримання термінів
Вартість розробки обговорюється індивідуально, але в середньому окупається за півроку за рахунок автоматизації. Замовте консультацію — оцінимо ваш проєкт за один день.







