Aiogram telegtam-bot
October 8

Telegram botlari haqida umumiy ma'lumot.

Telegram botlari kimlar?

Ehtimol, ko'pchiligingiz Botlarni Telegram ilovasida yashaydigan va u erda biror narsa qiladigan avtomatik yordamchilar sifatida tasavvur qilasiz. Aslida, bu shunday. Bu haqda rasmiy hujjatlarda nima yozilgan:

Botlar-xabarlarni avtomatik ravishda qayta ishlash va yuborish uchun yaratilgan Telegramdagi maxsus hisoblar. Foydalanuvchilar oddiy yoki guruh suhbatlari orqali yuborilgan xabarlar orqali botlar bilan o'zaro aloqada bo'lishlari mumkin. Botning mantig'i botlar uchun API-ga HTTPS so'rovlari yordamida boshqariladi.

Xo'sh, ya'ni bu Telegram-dagi hisoblar bo'lib, ular avtomatik ravishda xabarlarni qayta ishlashlari va yuborishlari mumkin. Asosan, bu haqida. Bilasizmi, men bunga qanday qarayman? Telegram bizga har qanday mantiqimiz uchun qulay interfeysni taqdim etdi. Agar aniq bo'lmasa, endi tushuntiraman.

Aytaylik, siz biron bir dasturni o'ylab topdingiz. Misolning soddaligi uchun bu har 2 soatda siz tanlagan valyuta juftliklari bo'yicha joriy kursni yuboradigan ma'lumot ilovasi bo'lsin. Bunday dasturni qanday amalga oshirish mumkin? Xo'sh, eng oddiy narsa veb - sahifani JavaScript-ga ozgina kod qo'shib qilishdir. Sahifa har 2 soatda yangilansin, u biron bir joyda xostingda osilib turadi, sizda uning manzili bor. Sizga kerak bo'lganda-siz unga kirasiz va kerakli ma'lumotlarni olasiz.

Ushbu yondashuvning aniq kamchiliklari bor, shunday emasmi? Ogohlantirishlar yo'q. Xo'sh, nima uchun bizga bunday dastur kerak, agar kerak bo'lsa, Google-da bizni qiziqtirgan valyuta juftligi bilan so'rov yoza olsak?

Yana bir yondashuv-keling, telefon uchun dastur yozamizmi? Sizda nima bor? Android yoki iPhone? Aytaylik, yozamiz. Va u erda siz uni bozorga qo'yishingiz kerak. Va buning uchun siz ushbu platformalarda ishlab chiquvchi sifatida ro'yxatdan o'tishingiz, bir nechta shakllarni to'ldirishingiz, kirish huquqini berguncha kutishingiz kerak, sizning ilovangiz ilova qilinmaguncha (tasdiqlangan). Ehtimol, sahifaga kirish yoki Google-dan foydalanish osonroq:)

Shunday qilib, Telegram messenjerni har qanday mantiqingiz uchun interfeys sifatida ishlatishga imkon beradi. Deyarli har bir kishi telegramga ega, hamma unga o'rganib qolgan, nega unda biron bir vazifani hal qilmaslik kerak?

Ha, interfeys nuqtai nazaridan, mobil ilovani yaratganingizdan ancha kam imkoniyatlar mavjud, ammo, birinchidan, bu hali, ikkinchidan, hatto bunday imkoniyatlar ham turli xil muammolarni hal qilish uchun etarli.

Keling, tuzatish uchun: Telegram bot-bu telegramdagi maxsus hisob, bu orqali siz xabarlarni yuborishingiz va qabul qilishingiz mumkin. Va u ushbu xabarlar bilan aniq nima qiladi - bu biz ushbu botga qanday mantiqni yozishimizga bog'liq.

Eslatma. Va shunga qaramay, ko'pincha men "bot buni qiladi, bot buni qiladi, bot yangilanishlarni qayta ishlaydi va hokazo" deb aytaman.shu nuqtai nazardan, men nafaqat maxsus hisobni, balki botning orqa tomonini, ya'ni foydalanuvchilarning bot hisobi bilan o'zaro ta'sirini qayta ishlaydigan kodni ham nazarda tutaman.

Botlar nima qila oladi?

Oh! Bularning barchasi ishlab chiquvchining tasavvuriga bog'liq! Oldingi bosqichda aytib o'tilganidek-Telegram bot-bu foydalanuvchi va botning kaput ostidagi interfeysi. Va u erda, siz tasavvur qilganingizdek, siz tasavvur qilishingiz mumkin bo'lgan hamma narsa bo'lishi mumkin. Qoidalardagi eng oddiy algoritmlardan, masalan, "salom" so'ziga "va sizga salom" deb javob berishingiz kerak, murakkab neyron tarmoqlarga. Rasmiy hujjatlarda quyidagi misollar keltirilgan:

  • Bildirishnomalar va yangiliklarni yuboring. Bot sizga qiziqarli yangiliklar paydo bo'lganda sizga xabarnoma yuborishi mumkin.
  • Boshqa foydalanuvchilarning to'lovlarini qabul qiling. Bot foydalanuvchilarga obuna, xizmat yoki mahsulot uchun pul to'lashni taklif qilishi mumkin.
  • Boshqa xizmatlar bilan integratsiya. Masalan, bot sharhlar yuborishi yoki "aqlli uy"ni boshqarishi mumkin. Yoki, masalan, biron bir harakat yoki voqea sodir bo'lganda sizga xabarnoma yuboring.
  • Yordamchi dasturlar va vositalar. Bot ob-havoni ko'rsatishi, matnlarni tarjima qilishi yoki sizning so'rovingiz bo'yicha bo'lajak voqealar haqida ogohlantirishi mumkin.
  • Bir va ko'p o'yinchi o'yinlari. Bot siz bilan shashka yoki shaxmat o'ynashi, viktorinalar o'tkazishi va hokazo.
  • Ijtimoiy xizmatlar. Bot sizning umumiy qiziqishlaringiz va sevimli mashg'ulotlaringiz asosida siz bilan suhbatlashadigan odamni topishi mumkin.
  • Siz xohlagan hamma narsa.

Biz kursda, masalan, bot kitobini qilamiz. Ya'ni, kitobni to'g'ridan-to'g'ri telegramda qulay o'qish mumkin. Bunday holda, tarkib jadvalida navigatsiya, siz qoldirgan sahifada xatcho'p va boshqalar bo'ladi. Ehtimol, bu o'z kitobini shu tarzda tarqatishni istaganlar yoki o'z kitoblariga pullik kirishni istaganlar uchun foydali bot bo'lishi mumkin.

O'zaro ta'sirning butun tsikli

Botlar qanday tashkil etilganiga o'tishdan oldin, keling, ularning butun zanjirdagi o'rni qayerda ekanligini tushunaylik. Keng zarbalar bilan aytganda. Bizda Telegram dasturining o'zi bor-smartfon, ish stoli yoki veb-saytdagi mijoz-bu muhim emas. Bizda Telegram serverlari mavjud, ular orqali foydalanuvchilar va/yoki xizmatlar o'rtasida o'zaro aloqalar mavjud va bizda botning o'zi, aniqrog'i uning orqa tomoni - foydalanuvchi harakatlarini boshqaradigan dastur mavjud.

Foydalanuvchi Telegram ilovasi (mijozi) orqali qandaydir tarzda bot hisob qaydnomasi bilan o'zaro aloqada bo'lganda (unga xabar yozadi, xabar ostidagi inline tugmachasini bosadi yoki Menyuda buyruqni tanlaydi)-ilova Telegram serveriga so'rov yuboradi. Server bu botga murojaat ekanligini tushunadi va bot qanday tuzilganiga qarab, u botga so'rov yuboradi yoki botdan foydalanuvchi harakati haqidagi ma'lumotlarni uzatish uchun so'rovni kutadi.

Bot serverdan mo'ljallangan narsani olishi mumkin bo'lgan ikkita asosiy texnologiya mavjud. Long polling и Webhook. Long pollingning mohiyati shundaki, botga mo'ljallangan yangilanishlar (yangilanishlar) uchun serverni doimiy ravishda so'roq qilish, masalan, " u erda, men uchun nima bor?". Va webhook-bu serverning o'zi botni "taqillatib": "sizga nimadir keldi!", botga biror narsa kelganda. Endi biz ushbu texnologiyalarga e'tibor qaratmaymiz, ular haqida kursda batafsil ma'lumot beriladi. Long polling ilgari asosan botni ishlab chiqish va sinovdan o'tkazish bosqichida, ko'pincha ishlab chiquvchining kompyuterida va WebHook-da, bot allaqachon ishlab chiqarishda ishga tushirilganda ishlatilgan. Ammo endi Long polling bir necha yillardan beri shu qadar barqaror ishlaydiki, u hamma joyda ishlab chiqarishda qo'llaniladi.

Shunday qilib, bot serverdan yangilanishlarni oladi, ular bilan nimadir qiladi va natijani serverga qaytaradi. Server xabar qaysi foydalanuvchiga mo'ljallanganligini tushunadi va uni foydalanuvchi ilovasiga yuboradi.

Bot va server o'rtasidagi aloqa https so'rovlari shaklida amalga oshiriladi.

Telegram botini qanday yaratish kerak

Men birinchi marta Telegram botlarini o'rganishni boshlaganimda, eng tushunarli va batafsil materiallar telegramda Botlarni yaratish mavzusida edi. Va endi mening versiyamda bunday qo'llanma mavjud, chunki men bundan ham battarroqman? Barcha asosiy ma'lumotlar bir joyda bo'lsin.

Sizda allaqachon Telegram o'rnatilgan va unda hisob qaydnomangiz bor deb taxmin qilinadi. Agar to'satdan, biron sababga ko'ra, bunday bo'lmasa-bu erda siz operatsion tizimingiz uchun dasturni yuklab olishingiz mumkin bo'lgan rasmiy veb - sayt.

Shunday qilib, sizda Telegram o'rnatilgan va hisob qaydnomangiz bor. Ajoyib! Biz qidiruvga o'tamiz va "BotFather"ni yozamiz. Shunga o'xshashlari bor, lekin bizga rasmiy kerak - ko'k belgi bilan. Xo'sh, yoki bu erda sizga havola - @BotFather.

To'g'ri "botlarning otasi" ni tanlang va ochilgan start chatida bosing.

Botlarning otasiga yuborilishi mumkin bo'lgan buyruqlar ro'yxati bilan xabar paydo bo'ladi. Ko'p qiziqarli narsalar bor, biz ularni keyinroq ko'rib chiqamiz. Endi bizni /newbot jamoasi qiziqtiradi. Yoki to'g'ridan-to'g'ri ustiga bosing yoki pastki chap burchakda siz "Menyu" tugmachasini bosishingiz mumkin (ba'zi mijozlarda u uchta gorizontal chiziq yoki uchta gorizontal chiziq va "Menyu" so'zi kabi ko'rinadi) va u erda kerakli buyruqni tanlash imkoniyati ham ochiladi. Biz jasorat bilan bosamiz!

BotFather yangi botimizga nom tanlashni taklif qiladi.

Biz har qanday ismni yozamiz. Kelajakda, agar xohlasangiz, uni o'zgartirish mumkin bo'ladi.

Keyinchalik, siz bizning botimizga foydalanuvchi nomini berishingiz kerak-o'zgartirilishi mumkin bo'lmagan va "bot"bilan tugashi kerak bo'lgan noyob nom. Bundan tashqari, harflarning holati muhim emas. "BOT", "bot", "Bot" va hatto "boT"bo'lishi mumkin. Yuzerneimning uzunligi 5 dan 32 belgigacha bo'lishi kerak. Siz lotin harflari, raqamlari va pastki chiziqlaridan foydalanishingiz mumkin. Telegramning rasmiy hujjatlarida shunday yozilgan:

Va ushbu tavsifdan siz botning foydalanuvchi nomi raqam yoki pastki chiziq bilan boshlanishi mumkin deb o'ylashingiz mumkin bo'lsa-da, aslida Telegram bunga yo'l qo'ymaydi.

Ya'ni, foydalanuvchi nomi 5 dan 32 tagacha belgidan iborat bo'lishi kerak, ular orasida harflar, raqamlar va pastki chiziqlar bo'lishi mumkin, lekin u harf bilan boshlanishi va "bot" so'zi bilan tugashi kerak, bundan tashqari, registr muhim emas.

Foydalanuvchi nomi noyob bo'lishi kerakligi sababli, uni tanlash juda oson bo'lmasligi mumkin - ko'pchilik allaqachon band. Foydalanuvchilar Botlarni yaratdilar, o'ynashdi va keyin ularni tashladilar. Ehtimol, Telegram serverlarining tubida o'lik tug'ilgan botlar qabristoni mavjud.

Va nihoyat, yana bir urinishdan so'ng, u hali ham bot uchun bo'sh foydalanuvchi nomini topishga muvaffaq bo'ldi. Botopapa bizni nima bilan tabriklaydi.

Sizni ham tabriklayman!

Keyingi ish uchun bizga token kerak. Hech kim sizning botingiz nomidan hamma narsani qila olmasligi uchun uni hech kimga ko'rsatmaslik yaxshiroqdir. Agar kerak bo'lsa, Botu tokenini o'zgartirish mumkin. Shuningdek, @BotFather orqali.

Shuni yodda tutingki, bitta Telegram akkauntida maksimal 20 ta botni boshqarishga ruxsat beriladi. Bu Telegramning rasmiy hujjatlarida aytilmagan (yaxshi, yoki men topmadim), lekin ko'plab foydalanuvchilar tomonidan empirik tarzda aniqlangan.

Eslatma. @BotFather bilan o'zaro munosabatlarning har qanday bosqichida undan mavjud buyruqlar ro'yxatini olish uchun - u bilan suhbatga /start yoki /help buyruqlarini yuboring.