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

Telegram заблокирован: как перенести чат-бота бизнеса в ВКонтакте

Telegram официально заблокирован в России с апреля 2026. Разбираем пошагово, как перенести автоответчик, бота записи и воронку продаж с Telegram Bot API на VK API — с примерами кода на Python.

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

4 апреля 2026 года Павел Дуров подтвердил: Telegram заблокирован в России. Роскомнадзор применяет ТСПУ — оборудование глубокой фильтрации трафика на сетях всех крупных операторов. 65 миллионов россиян продолжают заходить через VPN, но для бизнеса это уже не вариант: клиент не обязан настраивать VPN, чтобы написать тебе.

Если у тебя был бот в Telegram — для записи, автоответов или уведомлений — его нужно переносить. В этой статье разберём, как это сделать в ВКонтакте на Python.

Почему именно VK

VK входит в «белый список» Минцифры — он гарантированно доступен без VPN. Аудитория платформы в 2026 году выросла: часть бизнеса уже перешла сюда после ограничений на другие сервисы. Сообщество ВКонтакте — это готовый канал коммуникации с клиентами, к которому можно подключить бота за 15 минут.

Что меняется при переходе с Telegram на VK

Концепции похожи, но терминология и структура API отличаются.

TelegramVKЧто изменилось
Бот через @BotFatherБот через токен сообществаБот привязан к сообществу, не к отдельному аккаунту
chat_idpeer_idИдентификатор диалога
Polling / WebhookLong Poll API / Callback APILong Poll — аналог polling, Callback — аналог webhook
bot.send_message()api.messages.send()Другой синтаксис, логика та же
Inline-клавиатураInline-клавиатура (callback-кнопки)Похожий синтаксис, есть отличия в структуре JSON
Reply-клавиатураKeyboard (обычная)Аналог есть, называется иначе
НетСообщество со стеной, фото, товарамиVK даёт дополнительный контекст о бизнесе

Главное отличие: в Telegram бот — отдельная сущность. В VK бот — это сообщение от имени сообщества. Это означает, что у тебя уже должна быть группа или паблик.

Шаг 1: Готовим сообщество

Если сообщество уже есть — переходи к шагу 2.

  1. Заходи на vk.com → «Создать сообщество»
  2. Выбирай тип «Бизнес» или «Сообщество по интересам»
  3. Укажи название и тематику

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

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

В Telegram ты получал токен у @BotFather. В VK токен выдаёт само сообщество:

  1. Открывай Управление (кнопка под обложкой)
  2. Переходи в НастройкиРабота с API
  3. Нажимай «Создать ключ»
  4. Включай разрешения:
    • ✅ Доступ к сообщениям сообщества
    • ✅ Управление сообществом (если нужны уведомления)
  5. Копируй токен — он начинается с vk1.a.

Далее включи сообщения сообщества: УправлениеСообщения → переключатель «Включены».

Шаг 3: Устанавливаем зависимости

pip install vkbottle python-dotenv

Создай файл .env рядом с кодом:

VK_TOKEN=vk1.a.ТВОЙ_ТОКЕН

Шаг 4: Базовый автоответчик

Это аналог самого частого Telegram-бота — ответы на ключевые слова.

Было в Telegram (aiogram):

@dp.message(F.text.lower() == "цена")
async def handle_price(message: Message):
    await message.answer("Наши цены: ...")

Стало в VK (vkbottle):

import asyncio
import os
from dotenv import load_dotenv
from vkbottle.bot import Bot, Message

load_dotenv()
bot = Bot(token=os.getenv("VK_TOKEN"))

@bot.on.message(text="цена")
async def handle_price(message: Message):
    await message.answer("Наши цены: ...")

asyncio.run(bot.run_polling())

Структура почти идентична. Основные отличия:

  • Bot вместо Dispatcher
  • @bot.on.message вместо @dp.message
  • Запуск через bot.run_polling() вместо dp.start_polling()

Шаг 5: Клавиатура с кнопками

В Telegram ты использовал InlineKeyboardMarkup. В VK это тоже называется inline-клавиатура, но строится через встроенный класс.

Telegram:

keyboard = InlineKeyboardMarkup(inline_keyboard=[
    [InlineKeyboardButton(text="Цена", callback_data="price")],
    [InlineKeyboardButton(text="Контакты", callback_data="contacts")],
])
await message.answer("Выбери:", reply_markup=keyboard)

VK:

from vkbottle import Keyboard, KeyboardButtonColor, Callback

keyboard = (
    Keyboard(inline=True)
    .add(Callback("Цена", {"cmd": "price"}), color=KeyboardButtonColor.PRIMARY)
    .row()
    .add(Callback("Контакты", {"cmd": "contacts"}), color=KeyboardButtonColor.SECONDARY)
)

@bot.on.message(text="старт")
async def start_handler(message: Message):
    await message.answer("Выбери:", keyboard=keyboard.get_json())

Обработка нажатия:

from vkbottle.bot import RawEvent
from vkbottle.tools import ABCEventTypeMiddleware

@bot.on.raw_event("message_event", dataclass=RawEvent)
async def handle_callback(event: RawEvent):
    payload = event.object.payload
    peer_id = event.object.peer_id
    user_id = event.object.user_id

    if payload.get("cmd") == "price":
        await bot.api.messages.send(
            peer_id=peer_id,
            message="Наши цены: ...",
            random_id=0
        )
    elif payload.get("cmd") == "contacts":
        await bot.api.messages.send(
            peer_id=peer_id,
            message="Контакты: ...",
            random_id=0
        )

Важно: в VK callback-событие называется message_event, а не callback_query. Не забудь добавить random_id=0 — VK требует его для защиты от дублирования сообщений.

Шаг 6: Уведомления клиентам

Если в Telegram у тебя был бот, который отправлял уведомления (о заказе, записи, статусе), логика переносится напрямую. Единственное отличие — тебе нужен user_id пользователя ВКонтакте, а не Telegram chat_id.

async def send_notification(user_id: int, text: str):
    await bot.api.messages.send(
        user_id=user_id,
        message=text,
        random_id=0
    )

user_id пользователь передаёт при первом обращении к боту — сохрани его в базе данных.

Что переносится легко, а что сложнее

СценарийСложность переносаКомментарий
Автоответы по ключевым словамПростаяМеняется только синтаксис
Клавиатура с кнопкамиПростаяСтруктура похожа
Уведомления пользователямПростаяНужен VK user_id вместо chat_id
Запись на услуги (FSM)СредняяFSM в vkbottle работает иначе, чем в aiogram
Интеграция с CRM/базойЗависит от CRMЛогика та же, меняется источник данных
Платёжный модульТребует доработкиVK Pay — отдельная интеграция

Следующие шаги

Базовый перенос займёт от одного дня до недели в зависимости от сложности сценариев. Если у тебя был простой автоответчик — хватит нескольких часов. Если FSM с несколькими ветками и интеграцией с CRM — стоит заложить время на тестирование.

Когда бот заработает, не забудь:

  • Добавить ссылку на бота в описание сообщества
  • Включить приветственное сообщение в настройках сообщества (оно приходит автоматически, без кода)
  • Подключить Яндекс Метрику для отслеживания трафика

Что читать дальше

Если нужна помощь с переносом — опишите сценарий и платформу, откуда мигрируете, на странице «Заказать бота». Разберём конкретно под вашу задачу.

Реклама

Комментарии

Загрузка...