Aiogram 3+ yordamida Telegram Echo Bot yaratish
Salom, do'stlar! Bugun ushbu blog postida Python tilida Telegram botlarini yaratish uchun mashhur kutubxona bo'lgan aiogram ning 3+ versiyasidan foydalanib, oddiy echo bot ni qanday yaratishni bosqichma-bosqich ko'rib chiqamiz. Echo bot – bu foydalanuvchi yuborgan xabarni o'ziga qaytarib yuboradigan oddiy bot. Bu yangi boshlovchilar uchun ajoyib misol, chunki u bot yaratishning asosiy tamoyillarini o'rgatadi.
Ushbu qo'llanma Telegram Bot API bilan ishlashni yangi boshlaganlar uchun mo'ljallangan. Kodni yozishdan oldin, sizda Python 3.7+ o'rnatilgan bo'lishi kerak. Keling, ishni boshlaymiz!
1. Kerakli muhitni tayyorlash
๐น Python o'rnatish: Agar sizda Python yo'q bo'lsa, rasmiy saytdan yuklab oling: python.org.
๐น Virtual muhit yaratish (tavsiya etiladi): loyihangiz uchun alohida muhit yarating
python -m venv myenv
source myenv/bin/activate # Linux/Mac uchun
# yoki Windows uchun: myenv\Scripts\activate
Aiogram kutubxonasini o'rnatish: Terminalda quyidagi buyruqni bajaring:
pip install aiogram
Bu aiogram 3+ versiyasini o'rnatadi (eng so'nggi versiya avtomatik yuklanadi).
2. Bot tokenini olish
Telegram botini yaratish uchun avval botni ro'yxatdan o'tkazishingiz kerak:
๐น Telegramda @BotFather botini qidiring va u bilan suhbatni boshlang.
๐น /newbot buyrug'ini yuboring.
๐น Bot nomini va username-ni kiriting (masalan, MyEchoBot va my_echo_bot).
๐นBotFather sizga TOKEN ni beradi. Uni xavfsiz joyda saqlang, chunki u botni boshqarish uchun kerak bo'ladi. Masalan: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.
Eslatma: Tokeningizni hech kimga bermang, chunki u botingizga kirish huquqini beradi.
3. Kodni yozish
Endi asosiy qism – kod yozish. Yangi fayl yarating, masalan echo_bot.py, va quyidagi kodni yozing. Men kodni bosqichma-bosqich tushuntiraman.
import asyncio # Asinxron kod uchun kerak
from aiogram import Bot, Dispatcher # Bot va dispetcher
from aiogram.types import Message # Xabar turlari
from aiogram.filters.command import Command # Buyruq filtrlari
# Bot tokeningizni shu yerga yozing
TOKEN = 'YOUR_BOT_TOKEN_HERE' # Bu yerni o'zingizning tokeningiz bilan almashtiring
# Bot va dispetcher obyektlarini yaratish
bot = Bot(token=TOKEN)
dp = Dispatcher()
# /start buyrug'i uchun handler
@dp.message(Command("start"))
async def start_handler(message: Message):
await message.answer("Salom! Men echo botman. Menga xabar yuboring, men uni qaytaraman.")
# Barcha oddiy xabarlar uchun echo handler
@dp.message()
async def echo_handler(message: Message):
await message.answer(message.text) # Foydalanuvchi xabarini qaytarish
# Asosiy funksiya
async def main():
await dp.start_polling(bot) # Botni ishga tushirish
# Kodni ishga tushirish
if __name__ == '__main__':
asyncio.run(main())
Kodni tushuntirish (bosqichma-bosqich)
1๏ธโฃ-Importlar:
๐น asyncio: Aiogram asinxron kutubxona bo'lgani uchun kerak.
๐น Bot va Dispatcher: Botni yaratish va xabarlarni qayta ishlash uchun.
๐น Message: Xabar obyektini ifodalaydi.
๐น Command: /start kabi buyruqlarni filtrlaydi.
2๏ธโฃ-TOKEN: Bu yerni o'zingizning bot tokeningiz bilan almashtiring.
3๏ธโฃ-Bot va Dispatcher yaratish:
๐น bot = Bot(token=TOKEN): Bot obyektini yaratadi.
๐น dp = Dispatcher(): Xabarlarni qayta ishlash uchun dispetcher.
4๏ธโฃ-Handlerlar:
๐น @dp.message(Command("start")): Foydalanuvchi /start buyrug'ini yuborsa, salomlashuv xabarini yuboradi.
๐น @dp.message(): Barcha oddiy xabarlarga javob beradi va xabarni qaytaradi (echo).
5๏ธโฃ-Main funksiya:
๐น dp.start_polling(bot): Botni Telegram serverlariga ulab, xabarlarni kutib turadi.
6๏ธโฃ-Ishga tushirish: asyncio.run(main()) orqali kodni bajaring.
Eslatma: Aiogram 3+ da eski versiyalardagi executor o'rniga dp.start_polling ishlatiladi. Bu sodda va samarali.
4. Botni ishga tushirish va sinovdan o'tkazish
๐น Kod faylini saqlang va terminalda bajaring:
text
python echo_bot.py
๐น Bot ishlayotganini tekshirish uchun Telegramda botingizga boring (masalan, @my_echo_bot).
๐น /start buyrug'ini yuboring – bot salomlashishi kerak.
๐น Har qanday xabarni yuboring – bot uni qaytarishi kerak.
Agar xato chiqsa:
๐น Token to'g'ri ekanligini tekshiring.
๐น Internet aloqasi borligini va Python versiyasi mos ekanligini tekshiring.
๐น Xatolar uchun logging modulini qo'shing (masalan, import logging; logging.basicConfig(level=logging.INFO)).
5. Qo'shimcha maslahatlar
๐น Logging qo'shish: Botni debug qilish uchun kod boshiga quyidagini qo'shing:
Python
import logging
logging.basicConfig(level=logging.INFO)
๐น Heroku yoki VPS da joylash: Lokal kompyuterda bot doim ishlamaydi. Uni Heroku, Render yoki VPS ga joylang.
๐น Kengaytirish: Echo botni asos qilib, ko'proq funksiyalar qo'shing, masalan, rasm yoki fayl qaytarish.
๐น Rasmiy hujjatlar: Batafsil ma'lumot uchun aiogram dokumentatsiyasini o'qing.
๐น Xavfsizlik: Tokeningizni GitHub ga yuklamang – .gitignore dan foydalaning.
Ushbu qo'llanma yordamida siz o'z echo botingizni yaratishingiz mumkin. Kodni o'zingizning loyihangizda ishlatib ko'ring va tajribangizni baham ko'ring. ๐