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

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

Telegram заблокирован — что делать с ботом для бизнеса. Как перенести автоответчик, бот записи и воронку продаж из Telegram в ВКонтакте: сценарии и код.

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

Меня зовут Павел Гордеев, и эту статью я пишу как человек который живёт в России в 2026 году.

Telegram заблокирован. Лично я бота из Telegram не переносил — у меня его там и не было. Но ситуация очевидна: если ваш бизнес общался с клиентами через Telegram-бота, сейчас это просто не работает для большинства пользователей без VPN. А клиент не обязан настраивать VPN, чтобы написать вам.

Куда переносить? VK входит в белый список — он работает у всех. В этой статье разберём как перенести логику бота из 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 — стоит заложить время на тестирование.

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

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

FAQ

Как перенести бота из тг в вк, если код написан на aiogram?

Aiogram работает только с Telegram. Для VK нужно переписать обработчики на vkbottle: декораторы похожи (@bot.on.message), но API VK имеет свои особенности — peer_id вместо chat_id, random_id обязателен, клавиатура в JSON-формате. Базовая структура переносится за день.

Можно ли перенести чат из Telegram в ВКонтакте автоматически?

Историю чатов между сервисами автоматически не перенести — это разные платформы с разными API. Можно вручную сохранить экспорт Telegram (JSON) и подгрузить отдельные сценарии в новую базу VK-бота, если нужна непрерывность данных.

Что делать если Telegram заблокирован, а у меня там бот для бизнеса?

Самый быстрый вариант — параллельно поднять копию в VK по гайду этой статьи. Telegram-бот может оставаться рабочим (доступен через VPN), но основной поток клиентов уйдёт в VK. Подключите автоматическое перенаправление в описании Telegram-сообщества.

VK блокирует ботов — это правда?

VK не блокирует ботов сообществ, если они соблюдают правила платформы (не спамят, не нарушают лицензию). Под блокировку попадают только боты, рассылающие сообщения в обход согласия пользователя или нарушающие правила VK.

Как написать Telegram-бот на aiogram после блокировки Telegram?

Технически писать можно — Telegram API всё ещё работает. Но клиенты в России без VPN не смогут пользоваться ботом. Если клиенты — российские пользователи, переписывайте на vkbottle для VK или maxapi для MAX.

Перенос бота из Telegram в VK — сколько времени занимает?

Простой автоответчик — несколько часов. FSM-бот с несколькими ветками — 1–3 дня. Бот с интеграциями (CRM, склад, оплата) — от недели. Львиная доля времени уходит на адаптацию клавиатур и ограничений VK API, не на саму логику.

Можно ли использовать один и тот же код для Telegram и VK?

Нет — это разные API. Можно вынести бизнес-логику в отдельный модуль и держать тонкие адаптеры для каждой платформы (один на aiogram, другой на vkbottle), но это требует архитектурной работы заранее.


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

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

Комментарии

Загрузка...