Telegram заблокирован: перенос бота в ВКонтакте
Telegram заблокирован — что делать с ботом для бизнеса. Как перенести автоответчик, бот записи и воронку продаж из Telegram в ВКонтакте: сценарии и код.
Содержание статьи
Меня зовут Павел Гордеев, и эту статью я пишу как человек который живёт в России в 2026 году.
Telegram заблокирован. Лично я бота из Telegram не переносил — у меня его там и не было. Но ситуация очевидна: если ваш бизнес общался с клиентами через Telegram-бота, сейчас это просто не работает для большинства пользователей без VPN. А клиент не обязан настраивать VPN, чтобы написать вам.
Куда переносить? VK входит в белый список — он работает у всех. В этой статье разберём как перенести логику бота из Telegram в ВКонтакте на Python.
Почему именно VK
VK входит в «белый список» Минцифры — он гарантированно доступен без VPN. Аудитория платформы в 2026 году выросла: часть бизнеса уже перешла сюда после ограничений на другие сервисы. Сообщество ВКонтакте — это готовый канал коммуникации с клиентами, к которому можно подключить бота за 15 минут.
Что меняется при переходе с Telegram на VK
Концепции похожи, но терминология и структура API отличаются.
| Telegram | VK | Что изменилось |
|---|---|---|
| Бот через @BotFather | Бот через токен сообщества | Бот привязан к сообществу, не к отдельному аккаунту |
chat_id | peer_id | Идентификатор диалога |
| Polling / Webhook | Long Poll API / Callback API | Long Poll — аналог polling, Callback — аналог webhook |
bot.send_message() | api.messages.send() | Другой синтаксис, логика та же |
| Inline-клавиатура | Inline-клавиатура (callback-кнопки) | Похожий синтаксис, есть отличия в структуре JSON |
| Reply-клавиатура | Keyboard (обычная) | Аналог есть, называется иначе |
| Нет | Сообщество со стеной, фото, товарами | VK даёт дополнительный контекст о бизнесе |
Главное отличие: в Telegram бот — отдельная сущность. В VK бот — это сообщение от имени сообщества. Это означает, что у тебя уже должна быть группа или паблик.
Шаг 1: Готовим сообщество
Если сообщество уже есть — переходи к шагу 2.
- Заходи на vk.com → «Создать сообщество»
- Выбирай тип «Бизнес» или «Сообщество по интересам»
- Укажи название и тематику
Бот работает только в сообществах, не на личных страницах.
Шаг 2: Получаем токен
В Telegram ты получал токен у @BotFather. В VK токен выдаёт само сообщество:
- Открывай Управление (кнопка под обложкой)
- Переходи в Настройки → Работа с API
- Нажимай «Создать ключ»
- Включай разрешения:
- ✅ Доступ к сообщениям сообщества
- ✅ Управление сообществом (если нужны уведомления)
- Копируй токен — он начинается с
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), но это требует архитектурной работы заранее.
Что читать дальше
- Бот ВК vs Telegram: полное сравнение возможностей — таблица различий по каждому аспекту API, что теряешь и что получаешь
- Как создать бота ВКонтакте с нуля — если ещё не настроил токен и сообщество
- vkbottle или vk_api: что выбрать — какую Python-библиотеку взять под задачу
- Long Poll vs Callback API для бота ВК — выбор архитектуры перед прод-запуском
- Бот-автоответчик для ВК — самый частый сценарий при переходе с Telegram
Если нужна помощь с переносом — опишите сценарий и платформу, откуда мигрируете, на странице «Заказать бота». Разберём конкретно под вашу задачу.
Комментарии
Загрузка...