Telegramda yozing@Odilient

TELEGRAM-BOT

BiliMind Telegram mini-ilovasi

BiliMind uchun Telegram mini-ilovasi: SI yaratgan kurslarni to‘g‘ridan-to‘g‘ri chatdan ochadi va o‘quvchini Telegram imzolagan initData orqali sezdirmasdan tizimga kiritadi — ro‘yxatdan o‘tish formasi kerak emas.

O‘z mahsulotimiz
Mijoz
Ta’lim
Soha
Davom etmoqda
Muddat
2026
Yil
Boshlang‘ich nuqta

Muammo

O‘zbekistonda va umuman MDHda Telegram ko‘pincha odamlarda allaqachon bor bo‘lgan akkaunt, har bir ro‘yxatdan o‘tish formasi esa o‘quvchilarning bir qismini yo‘qotadi. Mini-ilova odamlarni parol va emailsiz tizimga kiritishi, soxta yoki qayta yuborilgan ma’lumotlarni rad etishi, ilova ichidagi birinchi o‘tishdan keyin Telegram’ning ishga tushirish ma’lumotlari yo‘qolib qolishiga bardosh berishi va uni hech qachon Telegram ichida ochmaydigan veb-foydalanuvchilar uchun sahifani og‘irlashtirmasligi kerak edi.

Biz nima qildik

Yechim

Biz sezdirmasdan kirishni ikkala tomonda ham qurdik. Laravel endpoint’i initData HMAC imzosini bot tokeni bo‘yicha o‘zgarmas vaqtda tekshiradi, sukut bo‘yicha 24 soatdan eski ma’lumotlarni rad etadi va o‘quvchini Telegram ID bo‘yicha bir vaqtdagi so‘rovlarga chidamli yozuv bilan topadi yoki yaratadi: unga shaxsiy tashkilot ochib, Sanctum tokeni beradi. Nuxt mijozi mini-ilovani ishga tushirish heshidan aniqlaydi, bu kontekstni saqlab qo‘yadi, Telegram SDK’ni faqat kerak bo‘lganda yuklaydi va o‘quvchini darhol «Today» ekraniga olib kiradi.

Texnologiyalar
Telegram Mini AppsLaravelLaravel SanctumNuxt 4Vue 3TypeScriptPostgreSQL
Parda ortida

Loyiha qanday yaratildi

SI kurslarini ro‘yxatdan o‘tmasdan ochadigan Telegram mini-ilovasi

BiliMind vebda, Android va iOS ilovalari sifatida hamda Telegram ichida ishlaydi. Bu keys Telegram orqali kirish nuqtasi haqida: BiliMind SI kurs generatori uchun mini-ilova chatdan ochiladi, o‘quvchini sezdirmasdan tizimga kiritadi va to‘g‘ridan-to‘g‘ri bugungi darslar va takrorlashlar ko‘rsatilgan «Today» ekraniga olib boradi. Ro‘yxatdan o‘tish formasi yo‘q. O‘quvchining Telegram akkaunti uning BiliMind akkauntiga aylanadi.

Bu ataylab chat-bot qilinmagan. Bu so‘zning to‘liq ma’nosidagi Telegram mini-ilova ishlab chiqish: identifikatsiya, sessiyalarni boshqarish va Telegram webview’i ichida ishlaydigan to‘laqonli Nuxt veb-ilovasi.

Asosiy imkoniyatlar

  • Sezdirmasdan kirish — ishga tushirishda Telegram imzolagan initData BiliMind sessiyasiga almashtiriladi, shuning uchun o‘quvchi login formasini umuman ko‘rmaydi.
  • Imzo va qayta yuborishni tekshirish — Telegram talab qilgan tartibda HMAC-SHA256 tekshiruvi, heshlarni o‘zgarmas vaqtda solishtirish va auth_date uchun sukut bo‘yicha 24 soatlik amal qilish oynasi.
  • Bir vaqtdagi so‘rovlarga chidamli akkauntlar — foydalanuvchilar Telegram ID bo‘yicha createOrFirst orqali topiladi yoki yaratiladi, shuning uchun ilovani bir vaqtda ikki marta ochish hech qachon takroriy akkaunt yaratmaydi.
  • Yagona akkaunt modeli — yangi Telegram foydalanuvchisi shaxsiy «bir kishilik tashkilot» va Sanctum tokeni oladi, javob esa email orqali kirishdagi javob bilan bir xil tuzilgan, shuning uchun frontend ikkala yo‘lni bir xilda qayta ishlaydi.
  • Chuqur havolalar hisobga olinadi — bosh sahifa, kirish yoki ro‘yxatdan o‘tish sahifasiga tushadigan ishga tushirishlar to‘g‘ridan-to‘g‘ri «Today»ga o‘tadi, ulashilgan kurs yoki aniq darsga olib boradigan havolalar esa o‘zi ko‘rsatgan joyda ochiladi.
  • Veb-foydalanuvchilar uchun ortiqcha yuk yo‘q — Telegram SDK har bir sahifada bloklovchi skript sifatida emas, faqat mini-ilova ishga tushgani aniqlangandan keyin, talab bo‘yicha yuklanadi.

Qanday ishlaydi

Laravel backend

POST /api/auth/telegram ochiq bo‘lishi shart, chunki tokenni aynan shu endpoint chiqaradi. Shuning uchun u kirish va ro‘yxatdan o‘tishdagi so‘rovlar cheklovchisidan (rate limiter) birga foydalanadi. TelegramService ma’lumot maydonlarini saralab, data-check satrini tuzadi, maxfiy kalitni bot tokenidan hosil qiladi, heshlarni hash_equals bilan solishtiradi va auth_date bo‘lmasa, ma’lumotni eskirgan deb hisoblaydi. Foydalanuvchi allaqachon mavjud bo‘lsa, uning keshlangan Telegram username’i yangilanadi, shaxsiy tashkiloti yo‘q bo‘lsa, qayta tiklanadi. Faqat ishlab chiqish uchun mo‘ljallangan aylanib o‘tish rejimi jarayonni haqiqiy botsiz lokal ishga tushirish imkonini beradi va production’da o‘chiq turadi. Telegram ID bo‘yicha «topish yoki yaratish» andozasi — Bronjoy’da ishlatadiganimizning xuddi o‘zi.

Nuxt frontend

Telegram’ning ishga tushirish signallari mo‘rt. #tgWebAppData heshi mijoz tomonidagi birinchi navigatsiyadayoq yo‘qoladi, window.Telegram.WebApp.initData esa faqat SDK ishga tushgandan keyin paydo bo‘ladi. Biz mini-ilova kontekstini shu signallardan biri paydo bo‘lgan zahoti uzoq muddatli cookie’da saqlaymiz — u 30 kunlik avtorizatsiya cookie’sidan ham uzoqroq yashaydi. Shu tufayli eskirgan token bilan qayta ochilgan webview login formasiga qaytarib yuborilmaydi, balki initData orqali qayta avtorizatsiyadan o‘tadi. Telegram webview’ining o‘z cookie ombori bor, shuning uchun bu belgi oddiy brauzerga hech qachon o‘tib ketmaydi.

Mijoz plagini global avtorizatsiya himoyasidan (auth guard) oldin ishlaydi, bir vaqtda murojaat qilgan chaqiruvlar bitta bajarilayotgan kirish so‘rovidan birga foydalanadi, ilova esa ekran balandligini to‘liq egallash uchun ready() va expand() ni chaqiradi. Oddiy brauzerda yoki mobil ilovaning native qobig‘ida bularning barchasi hech narsa qilmaydigan bo‘sh chaqiruvlarga aylanadi.

Bizning rolimiz

O‘zimizning BiliMind mahsulotimiz doirasida biz mini-ilova orqali kirishni boshidan oxirigacha loyihaladik va yaratdik: Laravel endpoint’i va tekshiruv xizmati, shuningdek, Nuxt’dagi aniqlash va sessiya mantig‘i.

O‘xshash ishlar

Kurs generatorining o‘zi asosiy BiliMind keysida yoritilgan. Bu ish Telegram-botlar yaratish va veb-ilovalar yaratish xizmatlarimiz doirasiga kiradi, Bronjoy Telegram bron qilish boti esa yozilishlar uchun qurilgan bot va mini-ilovani ko‘rsatadi.

Birga yaratamiz

BiliMind Telegram mini-ilovasi kabi loyiha kerakmi?

Mahsulotingiz nima qilishi kerakligini ayting. Ish hajmini belgilaymiz, muddatlarni rejalashtiramiz va qat’iy narx yuboramiz — bepul va davom ettirish majburiyatisiz.

Bepul konsultatsiya Majburiyatsiz Tezkor javob