Aiogram bilan yarim soat ichida Pythonda Telegram bot
Biz Python-da keyinchalik turli funktsiyalar bilan to’ldirilishi mumkin bo’lgan oddiy suhbatdosh Telegram botini yozamiz.
Sozlamalar
Telegram-ni oching, @BotFather-ni toping va chatni boshlang. /newbot buyrug’ini yuboring va ko’rsatmalarga amal qilgan holda davom eting.
Sizga BotFather beradi:
- shaxsiy token;
- Telegram API manzili;
- yo’riqnomaga havola.
Tokenni saqlab oling, chunki u bot bilan oʻzaro aloqada boʻlish uchun kalit hisoblanadi.
Eslatma Tokenni saqlash mahalliy bo’lishi kerak: hech qanday holatda uni ommaga, masalan, GitHub yoki shunga o’xshash ochiq manbaalarga yuklamang.
Keyin chatlaringizda qidiruv satriga bot nomini kiriting va /start tugmasini bosing. Har qanday xabarni yuboring: bu Telegram boti oladigan birinchi yangilanish bo‘ladi.
Python o’rnatish
Python-da Telegram botini yozish uchun siz tilning o’zini o’rnatishingiz kerak. Agar siz Windows-dan foydalansangiz, Python-ni rasmiy veb-saytdan yuklab olishingiz mumkin. Versiya muhim. Biz uchun Python 3.7 yoki undan yuqori versiyalari mos keladi. Agar sizda Linux yoki macOS bo’lsa, ehtimol sizda Python 3.6 o’rnatilgan.
Bu tilni endigina o‘rganishni boshlaganlar uchun Python dasturchilar uchun robocode.uz dan ro’yhatdan o’tib qo’ysangiz ham bo’ladi (kurs offline — Andijonda).
Pipni o’rnatamiz
Bu paket menejeri. Python 2.7.9 va Python 3.4 dan yuqori versiyalarda, shuningdek, macOS/Linux-da oldindan mavjud bo’ladi. Buni terminalda pip —version buyrug’i bilan tekshirishingiz mumkin. Agar biron sababga ko’ra u yo’q bo’lsa, uni terminal yordamida o’rnatishingiz mumkin:
sudo apt-get install python-pip
aiogram o’rnatish
Telegram Bot API uchun ushbu freymvorkni pip yordamida o’rnating:
pip install aiogram
Hello bot!
Keling, oddiy salomlashish dasturini yozamiz. Avval kutubxonalarni import qilishingiz va Telegram boti va dispetcherining obyekt namunalarini yaratishingiz kerak:
from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from aiogram.utils import executor TOKEN = "bu yerda sizning tokeningiz bo'lishi kerak" bot = Bot(token=TOKEN) dp = Dispatcher(bot)
Endi keling, kiruvchi /start va /help buyruqlarini bajaradigan matnli xabarlar ishlovchi funktsiyalarni yozamiz:
@dp.message_handler(commands=['start', 'help']) async def send_welcome(msg: types.Message): await msg.reply_to_message(f"Men Bot'man ! Salom - {msg.from_user.first_name}")
Keling, matnli xabarlarni qabul qilish uchun yana bitta ishlov beruvchi qo’shamiz. Agar bot «Salom» ni qabul qilsa, u ham salom beradi. Boshqa barcha xabarlarga tushunmadim deydi:
@dp.message_handler(content_types=['text']) async def get_text_messages(msg: types.Message): if msg.text.lower() == 'salom': await msg.answer('Salom!') else: await msg.answer('A ? Labbay ?')
Biz Python-da yozilgan Telegram botini quyidagicha ishga tushiramiz:
if __name__ == '__main__': executor.start_polling(dp)
Shunday qilib, biz botdan yangi xabarlarni doimiy ravishda kuzatib borishini so’raymiz. Agar bot ishlamay qolsa va xabarlar kelishda davom etsa, ular Telegram serverlarida 24 soat ichida to‘planib turadi, agar botni ish faoliyati tiklansa, hammasi birdaniga yetib boradi.
Batafsil ma’lumot uchun aiogram ning rasmiy yo’riqnomasini o’qing.
Umumiy Dasturlash
Aiogram bilan yarim soat ichida Pythonda Telegram bot