Заказать бота

Как создать бота ВКонтакте с нуля на Python: пошаговый гайд 2026

Как сделать бота в ВК самому: создаём сообщество, получаем токен, пишем код на Python с vkbottle. Пошаговая инструкция — от нуля до первого ответа за 30 минут.

Содержание статьи

Меня зовут Павел Гордеев, и сегодня создаём бота для ВКонтакте с нуля — на Python, с рабочим кодом и без воды.

Если ты искал как создать бота в ВК или как сделать бота в ВКонтакте — ты попал по адресу. Здесь весь путь: от создания сообщества до первого ответа бота. Время — 30 минут.

Сразу честно: VK сложнее Telegram. В Telegram ты получаешь один токен у BotFather и через пять минут бот работает. В VK первые вопросы появляются раньше чем напишешь первую строку кода — где взять токен, какие разрешения поставить, и главное: в чём вообще разница между Callback API и Long Poll API.

Объясню просто. Боты бывают двух типов:

Одни реагируют — клиент написал, бот ответил. Для этого используется Long Poll или Callback API сообщества.

Другие пишут сами — рассылки, уведомления, сообщения первыми. Для этого нужен уже другой механизм — User Long Poll с токеном пользователя.

Эта путаница и есть главное отличие от Telegram. Разберём по шагам — от создания сообщества до первого рабочего ответа за 30 минут.

Что ты создашь

К концу статьи у тебя будет бот, который:

  • Отвечает на приветствие («привет», «здравствуй»)
  • Отвечает на вопрос «что ты умеешь?»
  • Обрабатывает любое непонятное сообщение
  • Работает 24/7 на твоём сервере

Что понадобится

  • Python 3.9 или новее — скачать на python.org
  • VS Code или PyCharm — для удобной работы с кодом
  • Базовые знания Python — переменные, функции, циклы. Знакомство с async/await — плюс, но не обязательно
  • Сообщество ВКонтакте — создадим на следующем шаге
  • 30 минут времени

Шаг 1: Создаём сообщество ВКонтакте

Если у тебя уже есть сообщество — пропусти этот шаг.

  1. Заходи на vk.com → нажимай кнопку «Создать сообщество»
  2. Пиши название (до 48 символов)
  3. Выбирай тематику из списка
  4. Переключатель «Бизнес-инструменты» — оставь выключенным, для бота он не нужен
  5. Нажимай «Создать сообщество»

Форма создания сообщества ВКонтакте

Боты работают только в сообществах, не на личных страницах.

Шаг 2: Получаем токен доступа

Токен — это ключ, с помощью которого бот будет управлять сообществом.

  1. Заходи в Управление (кнопка под обложкой сообщества)
  2. Переходи в ДополнительноРабота с API

Раздел Работа с API в управлении сообществом

  1. Нажимай «Создать ключ»
  2. Отмечай разрешения:
    • ✅ Разрешить приложению доступ к управлению сообществом
    • ✅ Разрешить приложению доступ к сообщениям сообщества

Окно создания ключа доступа с выбором разрешений

  1. Нажимай «Создать» и копируй токен — он выглядит примерно так: vk1.a.XXXXX...

Важно: Никому не показывай этот токен. Храни его в переменных окружения, не в коде.

Шаг 3: Настраиваем бота в сообществе

Это самый важный шаг — без него бот не будет получать сообщения.

  1. В Управлении сообщества переходи в Настройки для бота
  2. Найди раздел «Возможности ботов» и включи его
  3. Нажми «Добавить кнопку Начать» — она появится у новых пользователей в диалоге

Включаем Long Poll

Long Poll — механизм, через который бот получает события в реальном времени. Без него бот упадёт с ошибкой сразу после запуска. Включается там же — в разделе «Работа с API», но на отдельной вкладке:

  1. Управление → Дополнительно → Работа с API
  2. Переходи на вкладку «Long Poll API» (рядом с «Ключи доступа» и «Callback API»)
  3. Внутри открой подвкладку «Настройки»
  4. Переключи Long Poll API в положение «Включено»

Вкладка Long Poll API в разделе Работа с API

  1. Переходи на подвкладку «Типы событий» — она рядом с «Настройки»
  2. Включи «Сообщение новое» (message_new) — без этого бот будет запущен, но молчать в ответ на сообщения

Включение типов событий Long Poll API — сообщение новое

Если после включения бот всё равно падает с longpoll for this group is not enabled — попробуй включить программно. Создай файл enable_longpoll.py и запусти один раз:

import asyncio
from vkbottle import API

TOKEN = "вставь_свой_токен"
GROUP_ID = 123456  # число из адреса vk.com/club123456

async def main():
    api = API(TOKEN)
    await api.request("groups.setLongPollSettings", {
        "group_id": GROUP_ID,
        "enabled": 1,
        "api_version": "5.199",
        "message_new": 1,
        "message_reply": 1,
    })
    print("Long Poll включён!")

asyncio.run(main())

После успешного запуска файл можно удалить.

Шаг 4: Создаём проект и устанавливаем библиотеку

Открой терминал (в VS Code — `Ctrl+“, в PyCharm — вкладка Terminal) и создай папку проекта:

mkdir vkbot
cd vkbot

Создай виртуальное окружение — это изолированная среда для зависимостей проекта:

python -m venv .venv

Активируй его:

# Windows (PowerShell):
.venv\Scripts\activate

# Linux / macOS:
source .venv/bin/activate

После активации в начале строки появится (.venv) — это значит, что окружение активно. Теперь устанавливай vkbottle — лучшую Python-библиотеку для VK-ботов. Современная, асинхронная, хорошо документированная:

pip install vkbottle

Проверь установку:

pip show vkbottle

Должен увидеть информацию о пакете: версию, автора, путь установки.

Шаг 5: Пишем первого бота

Создай файл bot.py в папке проекта:

import asyncio
from vkbottle.bot import Bot, Message

# Замени на свой токен сообщества
TOKEN = "YOUR_TOKEN_HERE"

bot = Bot(token=TOKEN)


@bot.on.message(text=["привет", "здравствуй", "хай", "hi", "hello"])
async def greet_handler(message: Message):
    await message.answer("Привет! Я бот этого сообщества 🤖")


@bot.on.message(text=["что ты умеешь", "помощь", "/help"])
async def help_handler(message: Message):
    await message.answer(
        "Я умею:\n"
        "• Отвечать на приветствия\n"
        "• Рассказывать о себе\n"
        "\nНапиши «привет» чтобы начать!"
    )


@bot.on.message()
async def fallback_handler(message: Message):
    await message.answer("Не понял тебя 🤔 Напиши «помощь» чтобы узнать что я умею.")


if __name__ == "__main__":
    bot.run_forever()

Шаг 6: Запускаем бота

python bot.py

Если всё настроено правильно — бот начнёт работать. Открой сообщения своего сообщества ВКонтакте, нажми «Начать» и напиши «привет» — бот ответит! Если видишь ошибку longpoll for this group is not enabled — вернись на Шаг 3 и убедись, что «Возможности ботов» включены и настройки сохранены.

Как хранить токен безопасно

Никогда не пиши токен прямо в код. Используй файл .env:

pip install python-dotenv

Создай файл .env в папке проекта:

VK_TOKEN=вставь_сюда_свой_токен

И добавь .env в .gitignore чтобы случайно не залить токен на GitHub:

.env
.venv

В коде читай токен так:

from dotenv import load_dotenv
import os

load_dotenv()
TOKEN = os.environ["VK_TOKEN"]

Для продакшна — отдельная статья с продвинутыми способами хранения: Как хранить токен VK API: .env, systemd, защита от утечек.

FAQ

Как создать бота в ВК с нуля — с чего начать?

Начни с создания сообщества ВКонтакте и получения токена доступа (Шаги 1–2 этой статьи). Потом установи Python и библиотеку vkbottle командой pip install vkbottle. Весь путь от нуля до первого ответа бота — около 30 минут.

Как сделать бота в ВК самому, без программиста?

Если программировать не хочется — есть конструкторы: Senler, BotHelp, Salebot. Они не требуют кода, но ограничены по возможностям. Сравнение — в статье ТОП-7 конструкторов ботов для ВК. Если нужны интеграции, сложные сценарии и полный контроль — Python или разработка под ключ.

Можно ли создать бота в ВКонтакте бесплатно?

Да. VK API и библиотека vkbottle — бесплатны. Запуск на своём компьютере — тоже. Платно только по желанию: VPS-сервер для работы 24/7 обходится от 150–200 руб/мес на минимальном тарифе.

Чат-бот на Python для ВК — нужно ли знать async/await?

Для простого бота — нет. vkbottle скрывает асинхронность внутри: достаточно базового Python. async def и await в обработчиках можно просто скопировать по шаблону из этой статьи — бот будет работать без глубокого понимания деталей.

Как создать своего бота в ВК и не потерять токен?

Никогда не пиши токен прямо в код. Храни его в файле .env и читай через python-dotenv. Добавь .env в .gitignore — тогда токен не попадёт на GitHub случайно. Подробнее — в разделе «Как хранить токен безопасно» этой статьи.

Бот в ВК — как сделать, чтобы он работал всегда?

Запусти на VPS-сервере с автозапуском через systemd. Минимальный сервер для бота стоит 150–200 руб/мес. Подробный гайд: Деплой VK-бота на сервер с systemd и nginx.

Как создать вк бота с кнопками?

Клавиатуры в vkbottle добавляются через объект Keyboard. Создаёшь клавиатуру, добавляешь кнопки с payload и передаёшь в message.answer(). Полный разбор методов и ограничений — в статье VK Bot API: messages.send, клавиатуры, лимиты.

Можно ли запускать бота на Windows?

Да. Для старта Windows подходит отлично. Для работы 24/7 в проде удобнее Linux/VPS — Windows-машину нельзя держать включённой постоянно.

Почему бот отвечает мне, но не отвечает другим?

Частая причина — выключенное событие message_new или ограничения в настройках сообщества. Проверь шаг с Long Poll в этой статье — особенно раздел «Типы событий».

Какой API используется у бота ВК?

Для ботов сообщества используется обычный VK API (методы messages.*) плюс Long Poll API для входящих событий. Сравнение Long Poll и Callback API — в отдельной статье Long Poll vs Callback API.

Что лучше выбрать новичку: vk_api или vkbottle?

Для нового проекта — сразу vkbottle: асинхронная, активно развивается, удобнее для сложных сценариев. vk_api старше, больше примеров в интернете, чуть легче для старта. Подробное сравнение — vkbottle или vk_api: что выбрать.

Как запустить бота ВК на Python без постоянных падений?

Минимум для стабильности: токен в .env, обработчики в try/except, включить логирование и настроить автозапуск через systemd на сервере. Статья Деплой VK-бота на сервер закрывает все эти шаги.

Что дальше

Ты создал базового бота — это фундамент. Вот куда двигаться дальше:

Нужен бот под задачу бизнеса?

Если нужна индивидуальная логика, интеграции и воронка под ваш процесс — оставь заявку на разработку бота под ключ.

Если нужен быстрый старт без долгой разработки — выбери решение в каталоге готовых ботов.

Комментарии

Загрузка...