o‘zing o‘rgan
Telegram bot yaratish 1-dars / 15
Pito

Telegram bot qanday ishlaydi

BotFather va token, update nima, polling va webhook

1-bob. Birinchi botim 20 daqiqa Python 4 savol

Telegram bot — Telegram'dagi oddiy hisob, lekin uni odam emas, dastur boshqaradi. Botlar do'kon buyurtmalarini qabul qiladi, test o'tkazadi, eslatma yuboradi, guruhni boshqaradi. Bu saytning o'zi ham bot orqali kirish kodi va kechki eslatma yuboradi.

1-qadam: BotFather va token

  1. Telegram'da @BotFather ni oching (bu Telegram'ning rasmiy boti).
  2. /newbot → bot nomi → bot foydalanuvchi nomi (oxiri bot bilan tugashi kerak, masalan mening_test_bot).
  3. BotFather token beradi: 123456789:AA... ko'rinishidagi uzun qator.

⚠️ Token — botning paroli. Kim tokenni bilsa, botingizni boshqara oladi. Uni kodga yozmang, GitHub'ga yuklamang — .env faylida saqlang (Git kursi, 5-dars). Token tarqalib ketsa — BotFather'da /revoke bilan yangilang.

Update — Telegram'dan keladigan xabar

Foydalanuvchi botga yozganda, Telegram sizning dasturingizga update yuboradi — JSON ko'rinishidagi ma'lumot. Python'da u lug'atga aylanadi:

update = {
    "update_id": 1001,
    "message": {
        "message_id": 55,
        "from": {"id": 7001, "first_name": "Malika", "language_code": "uz"},
        "chat": {"id": 7001, "type": "private"},
        "text": "/start",
    },
}

xabar = update["message"]
print("Kimdan:", xabar["from"]["first_name"])
print("Chat ID:", xabar["chat"]["id"])
print("Matn:", xabar["text"])
print("Buyruqmi:", xabar["text"].startswith("/"))
# Natija: Kimdan: Malika
# Natija: Chat ID: 7001
# Natija: Matn: /start
# Natija: Buyruqmi: True

chat.id — kimga javob yuborishni bildiradi. Bot javob berganda shu raqamni ko'rsatadi.

Update qanday yetib keladi: polling va webhook

Usul Qanday Qachon
Polling dastur Telegram'dan qayta-qayta «yangi xabar bormi?» deb so'raydi o'rganish, kichik botlar — oddiy
Webhook Telegram o'zi sizning serveringiz manziliga yuboradi katta botlar — HTTPS'li server kerak

Bu kursda polling ishlatamiz — o'z kompyuteringizda ham ishlaydi.

Amaliyot Python

Update'lar ro'yxatidan faqat matnli xabarlarni ajratib, kimdan va nima yozilganini chiqaring (rasmda text yo'q):

Aziz: Salom
Malika: /start
main.py Ctrl+Enter — ishga tushirish
input() uchun ma'lumotlar
Kodni yozib, «Ishga tushirish» ni bosing. Birinchi marta Python yuklanishi bir necha soniya oladi.
Yechimni ko'rish
updates = [
    {"message": {"from": {"first_name": "Aziz"}, "text": "Salom"}},
    {"message": {"from": {"first_name": "Jasur"}, "photo": ["rasm.jpg"]}},
    {"message": {"from": {"first_name": "Malika"}, "text": "/start"}},
]

for u in updates:
    xabar = u["message"]
    if "text" in xabar:
        print(f"{xabar['from']['first_name']}: {xabar['text']}")

O'zingizni tekshiring

Savol 1 / 4

Telegram bot yaratish uchun qaysi botga murojaat qilinadi?

Variantlar

Savol 2 / 4

Bot tokeni qayerda saqlanishi kerak?

Variantlar

Savol 3 / 4

Update nima?

Variantlar

Savol 4 / 4

Polling nima?

Variantlar