Namunaviy loyihani .zip formatida yuklab olish
telegram_bot-sample.zip
cPanel-da telegram bot loyihasini Flask va web-hooklar orqali ishga tushirib olish uchun namuna
Biz tayyorlagan telegram bot loyihasi bu eng sodda python loyihalardan. U ishga tushgach, agar siz "salom", "hi", yoki "привет" deb yozsangiz u sizga alik qaytaradi. Bu uch so'zdan boshqa har qanday xabar uchun esa u sizdan uch kalit so'zdan birini yozishingiz kerakligini aytib javob qaytaradi.
Loyiha juda oddiy bo'lgani bilan uni production uchun tayyorlash va serverga joylash biroz murakkab bo'lib tuyilishi mumkin. Sababi aynan cPanel-ga bu kabi loyihani joylash va ishga tushirib olish o'ziga yarasha tartib qoidalarni talab qiladi.
Local muhitda - kompyuteringizda oddiy polling(doimiy "biror yangi xabar bormi" so'rovi bilan telegram-dan so'rab turuvchi loop) bilan telegram botni tekshirib olaverasiz. VDS/VPS serverlarida va tayyor panel, masalan, cPanel muhitlarida esa o'z tartib qoidalari mavjud bo'ladi.
Eng to'g'ri yo'li wbhooklar va minimal frameworklardan biri, masalan, biz ishlatadigan Flask-ni ishlatish bo'ladi. Ya'ni webhook-lar bilan biz doimiy telegram serveridan "yangi xabar bormi?" deb so'rayvermaymiz. Telegram o'zi biz tasdiqlagan URL ga yangi xabarni yetkazib turadi. Flask esa mana shunday webhook xabarlarni qabul qilib, qayta ishlash uchun qulay muhit vazifasini bajarib beradi.
telegram_bot-sample.zip
cPanel → Domains → Create A New Domain
Loyiha uchun alohida subdomen yaratib olamiz. Sababi telegram faqat https protokol bilan ishlaydi, buning uchun esa biz tg-bot.scroll.uz subdomenini yaratib olamiz va u uchun SSL sertifikat olinganiga ishonch hosil qilib olamiz.
Subdomen yaratilishi ayni shu nomdagi papkani ham yaratadi
cPanel → Setup Python App → Create Application
tg-bot.scroll.uz bo'ladi. Agar siz asosiy domenga sozlayotgan bo'lsangiz, unda public_html;tg-bot.scroll.uz subdomeni tanlanadi;passenger_wsgi.py va application qiymatlariga sozlanadi;Ilova yaratilgach uning papkasini ochib, muhitni aktivlashtirib olish uchun tayyor terminal komandasi yuqori qismda taqdim qilinadi. Uni biror joyga vaqtincha saqlab qo'yamiz. Birozdan keyin Terminal orqali kutubxonalarni o'rnatib olishda bu buyruq amali kerak bo'ladi.
cPanel → File Manager → /home/scroll/tg-bot.scroll.uz
Loyiha arxivini serverning kerakli joyiga yuklash uchun "File Manager" interfeysi orqali subdomen papkasini ochib olamiz va "Upload"(yuklash) tugmasini bosamiz:
Loyiha arxivini tanlab, yuklaymiz:
Yuklash yakunlangach ortga qaytishni bosamiz:
Yuklangan arxivni arxivdan chiqaramiz:
Shu tariqa loyiha fayllarini serverning kerakli papkasiga yuklab olgan bo'lamiz.
Birinchi ish - sizga loyiha ichida sample.passenger_wsgi.py fayli berilgan bo'ladi. Uning kodini passenger_wsgi.py fayliga ko'chirib o'ting va saqlang.
Ikkinchisi esa - @BotFather orqali telegram botni yaratib oling va bot token qiymatini loyihadagi config.py fayliga, kerakli qismiga ko'chib o'tib saqlang.
cPanel → Terminal
Terminal orqali avval "Python App" da berilgan buyruqdan foydalanib, env ni aktivlashtirib olamiz.
So'ng esa requirements.txt faylidan foydalanib, barcha kerakli kutubxonalarni o'rnatib olamiz:
cPanel → Setup Python App
Ilova interfeysini ochamiz va uni qayta ishga tushiramiz:
cPanel → Terminal
Bu amal bilan telegram webhook so'rovlarini (javob xabarlarini) qaysi manzilga jo'natishni o'zida sozlab oladi.
Buning uchun Terminal-ga qaytamiz va quyidagi kabi buyruqni ishga tushiramiz:
Bu albatta namunaviy buyruq. Undagi <YOUR_DOMAIN> va <YOUR_BOT_TOKEN> o'rniga mos keladigan qiymatlar qo'yilishi kerak.
Masalan, bizning vaqtincha yaratib olgan domen va tokenimiz bilan u quyidagicha holatga keladi:
Rasmdagi kabi natija bizga URL sozlanishi muvaffaqiyatli kechganini ko'rsatadi.
Ko'rib turganingizdek, bot o'z vazifasini bajaryapti. Siz esa bizning eng minimal loyihani, unda jarayon qanday amalga oshirilganini mustaqil ko'rib chiqing va o'z loyihangizga tadbiq qiling.
Biz yaxshi e'tibor qaratmaydigan, ammo to'g'ri bajarilmasa, kutilmagan muammolarga, qiyinchiliklarga olib keladigan vaziyatlar bo'ladi. Shulardan biri bu "Setup Python App" orqali yaratilgan loyihani to'g'ri yo'l bilan o'chirish hisoblanadi. Agar loyihani o'chirish tartibi to'g'ri bajarilmasa, kutilmagan muammolar kelib chiqishi mumkin.
cPanel → Sutup Python App
Eng birinchi o'rinda ilova to'xtatilishi(stop) so'ng o'chirishga berilishi kerak (delete):
cPanel → Domains → Manage
So'ngra namuna sifatida yaratilgan subdomenni o'chirib yuborsak bo'ladi:
cPanel → File Manager
Subdomen o'chirilishi uning papkasini o'chirmaydi. Loyiha papkasini o'zimiz, "File Manager" interfeysi orqali amalga oshiramiz:
Shu tariqa loyiha muammolarsiz to'liq o'chirilgan bo'ladi.