Совместимость с Telegram Bot API & aiogram 3.x

Создавайте мощных ботов для VROT Messenger

Единый современный Bot API: используйте знакомый синтаксис aiogram или python-telegram-bot, настраивайте меню команд, отправляйте inline-кнопки и управляйте ботами через BotFather.

Полный aiogram 3.x стек

Используйте стандартный TelegramAPIServer. Перенаправьте базовый URL на https://vrot.fun без изменений в логике обработчиков.

Меню команд бота

Поддержка кнопки «Меню» в чатах на вебе и iOS. Команды настраиваются через setMyCommands или команду /setcommands в BotFather.

Интерактивные Inline-кнопки

Поддержка InlineKeyboardMarkup с обработкой callback_query и URL-ссылками прямо внутри сообщений диалога.

Защита и надёжность

Уникальные API токены, сквозная валидация, поддержка Long Polling и Webhooks с секретными заголовками.

Быстрый старт на Python (aiogram 3.x)

Установите aiogram через pip и подключите вашего бота к платформе Vrot:

bot.py
import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.client.session.aiohttp import AiohttpSession
from aiogram.client.telegram import TelegramAPIServer

# Токен, полученный в BotFather (например: vrot_abcdef123...)
BOT_TOKEN = "ВАШ_ТОКЕН_ИЗ_VROT"

# Подключение к API серверу VROT
session = AiohttpSession(
    api=TelegramAPIServer.from_base("https://vrot.fun")
)
bot = Bot(token=BOT_TOKEN, session=session)
dp = Dispatcher()

# Обработчик команды /start
@dp.message(Command("start"))
async def cmd_start(message: types.Message):
    kb = types.InlineKeyboardMarkup(inline_keyboard=[
        [types.InlineKeyboardButton(text="Нажми меня", callback_data="btn_click")]
    ])
    await message.answer("Добро пожаловать в бота VROT!", reply_markup=kb)

# Обработчик нажатий на Inline-кнопку
@dp.callback_query()
async def cb_click(callback: types.CallbackQuery):
    await callback.answer("Кнопка успешно обработана!")
    await callback.message.answer(f"Вы нажали кнопку: {callback.data}")

# Эхо-обработчик сообщений
@dp.message()
async def echo(message: types.Message):
    await message.answer(f"Вы написали: {message.text}")

async def main():
    print("Бот запущен и ожидает сообщений...")
    await bot.delete_webhook(drop_pending_updates=True)
    await dp.start_polling(bot)

if __name__ == "__main__":
    asyncio.run(main())

Меню команд бота

Пользователи мессенджера Vrot могут нажать кнопку «Меню» рядом с полем ввода сообщения и выбрать нужную команду из выпадающего списка.

Настройка команд через код (set_my_commands)
# Настройка списка команд прямо из кода бота:
await bot.set_my_commands([
    types.BotCommand(command="start", description="Главное меню"),
    types.BotCommand(command="help", description="Справка и инструкция"),
    types.BotCommand(command="profile", description="Мой профиль"),
    types.BotCommand(command="settings", description="Параметры")
])

Поддерживаемые методы Bot API

Доступны через стандартные URL: https://vrot.fun/bot<TOKEN>/<METHOD> или https://api.vrot.fun/bot<TOKEN>/<METHOD>

Метод Описание Параметры
getMe Возвращает базовую информацию о боте (ID, юзернейм, имя). —
getUpdates Получение входящих обновлений и сообщений методом Long Polling. offset, limit, timeout
sendMessage Отправка текстового сообщения в личный чат или канал. Поддерживает inline-клавиатуры. chat_id, text, reply_markup
editMessageText Редактирование ранее отправленного сообщения. chat_id, message_id, text, reply_markup
answerCallbackQuery Подтверждение получения нажатия на Inline-кнопку. callback_query_id, text
setMyCommands Установка списка команд бота для отображения в кнопке «Меню». commands (массив объектов)
getMyCommands Получение текущего настроенного списка команд. —
deleteMyCommands Очистка меню команд бота. —
setWebhook Установка Webhook URL для отправки обновлений по HTTP POST. url, secret_token
deleteWebhook Удаление Webhook URL (возврат в режим Long Polling). —