TotalHash
UZ
Telegramda ochish

Python'da Telegram bot

6 daqiqa o'qish

Python'da Telegram bot yaratish dasturlashni o'rganishning eng qiziqarli yo'llaridan biri: bir necha qator kod bilan sizga javob beradigan bot paydo bo'ladi. Ushbu qo'llanmada nima kerakligini, BotFather orqali token olishni, birinchi «salom» botini, tugmalar va menyularni, botni doimiy ishlatishni va yangi boshlovchilar ko'p qiladigan xatolarni ko'rib chiqamiz.

Bot tokeni parolga teng. Uni hech kimga bermang, GitHub'ga yuklamang va skrinshotlarda ko'rsatmang.

Nima kerak: Python, kutubxona va token

  • Kompyuterda Python 3.10 yoki undan yangi versiya.
  • Kutubxona: aiogram yoki python-telegram-bot. Bu misolda aiogram 3 ishlatamiz.
  • Telegram'dan olingan bot tokeni.
  • Matn muharriri, masalan VS Code.

Kutubxonani o'rnatish uchun terminalda pip install aiogram buyrug'ini bajaring.

BotFather orqali token olish

  1. Telegram'da rasmiy @BotFather botini oching.
  2. /newbot buyrug'ini yuboring.
  3. Bot nomini va «bot» bilan tugaydigan username kiriting.
  4. BotFather sizga token yuboradi, uni xavfsiz joyda saqlang.

Bot yaratish bepul. Telegram Bot API ham bepul, faqat serverni o'zingiz ta'minlaysiz.

Birinchi bot: salom javobi

Quyidagi kod /start buyrug'iga salom bilan javob beradi va boshqa xabarlarni qaytarib yuboradi. TOKEN o'rniga o'z tokeningizni qo'ying.

import asyncio
from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart
from aiogram.types import Message

bot = Bot(token="TOKEN")
dp = Dispatcher()

@dp.message(CommandStart())
async def start(message: Message):
    await message.answer("Salom! Men birinchi botman.")

@dp.message()
async def echo(message: Message):
    await message.answer(message.text or "Matn yuboring")

async def main():
    await dp.start_polling(bot)

asyncio.run(main())

Faylni bot.py deb saqlang va python bot.py bilan ishga tushiring. Telegram'da botingizni topib /start yuboring.

Tugmalar va menyular

Ikki xil tugma bor: klaviatura o'rnidagi oddiy tugmalar (ReplyKeyboardMarkup) va xabar ostidagi inline tugmalar (InlineKeyboardMarkup). Inline tugma bosilganda bot callback oladi va xabarni tahrirlashi mumkin. Shuningdek BotFather'da /setcommands orqali buyruqlar menyusini qo'shish mumkin. Bot ichida to'liq interfeys kerak bo'lsa, mini-ilova yaratish mumkin: Telegram mini apps. Raqamli tovarlar uchun to'lovlar Telegram Stars orqali amalga oshiriladi: Telegram Stars.

Botni doimiy ishlatish

Kompyuteringiz o'chsa, bot ham to'xtaydi. Doimiy ishlashi uchun botni serverga (VPS) joylashtiring va jarayon menejeri yordamida ishga tushiring, shunda xato bo'lsa bot avtomatik qayta ishga tushadi. Tokenni kod ichida emas, muhit o'zgaruvchisida saqlash yaxshiroq.

Ikki usul bor: polling va webhook. Polling'da bot o'zi Telegram'dan yangi xabarlarni so'rab turadi, bu boshlash uchun eng oson yo'l. Webhook'da esa Telegram xabarlarni sizning serveringizga o'zi yuboradi; buning uchun domen va HTTPS sertifikat kerak bo'ladi, lekin katta yuklamada samaraliroq ishlaydi.

Keyingi qadam sifatida botga ma'lumotlar bazasini ulashni o'rganing: foydalanuvchilar ro'yxati, sozlamalar va statistika shu yerda saqlanadi. Kichik loyihalar uchun SQLite yetarli, katta loyihalar uchun PostgreSQL tanlanadi.

Ko'p uchraydigan xatolar

  • Unauthorized: token noto'g'ri yoki eskirgan.
  • Conflict: bitta bot ikki joyda bir vaqtda ishga tushirilgan.
  • Bot javob bermaydi: dastur ishga tushmagan yoki internet uzilgan.
  • Fayl nomi aiogram.py: kutubxona nomi bilan bir xil fayl nomi importni buzadi.
  • Noto'g'ri chekinish: Python'da bo'sh joy va tab aralashsa, kod ishlamaydi.
  • Eski misollar: internetdagi ko'p kodlar aiogram 2 uchun yozilgan va 3-versiyada ishlamaydi.

Tayyor botni sinab ko'ring

TotalHash Telegram'dagi bepul mayning o'yini va mini-ilova. Botlar qanday ishlashini o'yin orqali ko'rishingiz mumkin; topshiriqlar TON hamyoniga kichik miqdorda USD₮ va GRAM yuboradi. Daromad va'da qilinmaydi.

Telegram'da bepul o'yin.

TotalHash'ni ochish

Qisqa javoblar

Telegram bot yaratish uchun nima kerak?

Python, aiogram kabi kutubxona va BotFather'dan olingan token.

Telegram bot yaratish pullikmi?

Yo'q, bot yaratish va Bot API bepul, faqat server uchun to'laysiz.

Bot nega javob bermayapti?

Dastur ishga tushmagan, token noto'g'ri yoki bot ikki joyda ishlamoqda.

Botni doimiy qanday ishlatish mumkin?

Serverga joylashtirib, jarayon menejeri orqali ishga tushirish kerak.