Aiogram bilan yarim soat ichida Pythonda Telegram bot

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