Единый современный Bot API: используйте знакомый синтаксис aiogram или python-telegram-bot, настраивайте меню команд, отправляйте inline-кнопки и управляйте ботами через BotFather.
Используйте стандартный TelegramAPIServer. Перенаправьте базовый URL на https://vrot.fun без изменений в логике обработчиков.
Поддержка кнопки «Меню» в чатах на вебе и iOS. Команды настраиваются через setMyCommands или команду /setcommands в BotFather.
Поддержка InlineKeyboardMarkup с обработкой callback_query и URL-ссылками прямо внутри сообщений диалога.
Уникальные API токены, сквозная валидация, поддержка Long Polling и Webhooks с секретными заголовками.
Установите aiogram через pip и подключите вашего бота к платформе Vrot:
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 могут нажать кнопку «Меню» рядом с полем ввода сообщения и выбрать нужную команду из выпадающего списка.
# Настройка списка команд прямо из кода бота:
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="Параметры")
])
Доступны через стандартные 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). | — |