aiogram¶
Danger
This version still in development!
aiogram modern and fully asynchronous framework for Telegram Bot API written in Python 3.7 with asyncio and aiohttp.
It helps you to make your bots faster and simpler.
Features¶
Asynchronous (asyncio docs, PEP 492)
Supports Telegram Bot API 5.0
Telegram Bot API integration code was autogenerated and can be easy re-generated when API was updated
Updates router (Blueprints)
Finite State Machine
Middlewares
Provides Replies into Webhook
Warning
Before start using aiogram is highly recommend to know how to work with asyncio.
Also if you has questions you can go to our community chats in Telegram:
Simple usage¶
from typing import Any
from aiogram import Bot, Dispatcher, types
from aiogram.dispatcher.handler import MessageHandler
TOKEN = "42:TOKEN"
dp = Dispatcher()
@dp.message(commands=["start"])
class MyHandler(MessageHandler):
"""
This handler receive messages with `/start` command
Usage of Class-based handlers
"""
async def handle(self) -> Any:
await self.event.answer(f"<b>Hello, {self.from_user.full_name}!</b>")
@dp.message(content_types=[types.ContentType.ANY])
async def echo_handler(message: types.Message, bot: Bot) -> Any:
"""
Handler will forward received message back to the sender
Usage of Function-based handlers
"""
await bot.forward_message(
from_chat_id=message.chat.id, chat_id=message.chat.id, message_id=message.message_id
)
def main() -> None:
bot = Bot(TOKEN, parse_mode="HTML")
dp.run_polling(bot)
if __name__ == "__main__":
main()