Telegram Desktop kodida hamyonni saytga toʻgʻridan-toʻgʻri Telegram orqali kirish oynasida ulash tayyor holatga keltirilgan. Telegram akkauntingiz orqali kirayotgan sayt, xuddi shu soʻrovda oʻrnatilgan hamyon manzilini soʻrashi mumkin, va bitta tasdiqlash bilan sizni saytga kiritadi hamda TON Connect orqali hamyonni unga ulaydi. Kod mijozning ishlab chiqish (dev) tarmogʻida 12–13-oktabrdan beri mavjud, xuddi shu maʼlumot turi 20-oktabrdagi macOS uchun Telegram beta versiyasida ham bor. Chiqarilgan versiyalarda va API hujjatlarida bu funksiya hozircha mavjud emas.
Bu qanday koʻrinishda boʻladi
Kirishni tasdiqlash oynasi hozirda qaysi sayt ruxsat soʻrayotganini, soʻrov qaysi qurilmadan kelganini va «Allow Messages» (sayt botiga sizga yozishga ruxsat berish) tugmasini koʻrsatadi. Mijoz kodi boʻyicha, agar sayt hamyonni soʻragan boʻlsa, quyidagilar paydo boʻladi:
- Telegram hamyoningiz manzilini ikki qismga boʻlingan holda koʻrsatuvchi «Wallet» qatori (bosish manzilni nusxalaydi);
- Sukut boʻyicha yoqilgan «Connect Wallet» tugmasi;
- Izoh: «{bot} sizning hamyoningizni ushbu saytga ulashni soʻramoqda. Sayt sizning TON manzilingizni, balansingizni va operatsiyalaringizni koʻradi, lekin sizning ruxsatingizsiz mablagʻlarni oʻtkaza olmaydi. Ulanish kirish uchun imzoni imzolaydi, pul oʻtkazmasini emas».
Barcha oltita yangi interfeys qatori 12-oktabrda «Grant site wallet access from the login confirmation» tavsifi bilan bitta kommit orqali qoʻshilgan. Agar tugma yoqilgan holda qoldirilsa, kirish tasdiqlanganidan soʻng mijoz hamyonni blokdan chiqarishni soʻraydi va shundan keyingina serverga rozilikni yuboradi.
Hamyon faqat sayt sizni Telegramda tasdiqlashga yuborganida, havola orqali kirishda soʻraladi. Chatlardagi bot xabarlari ostidagi kirish tugmalari bu soʻrovni oʻz ichiga olmaydi: ularning kod tarmogʻida hamyon maydoni boʻsh yuboriladi.
Sayt nimalarni oladi
Ulanish TON Connect orqali amalga oshiriladi — bu saytlar va mini-ilovalar TON hamyonlarini ulash uchun ishlatadigan protokol. Oddiy ssenariyda sayt hamyonlar roʻyxatini koʻrsatadi, foydalanuvchi oʻzini tanlaydi va ulanishni hamyonda tasdiqlaydi. Bu yerda bu qadam kirish oynasiga oʻrnatilgan: kirish soʻrovi bilan birga Telegram serveri mijozga TON Connect sessiya raqamini va undagi sayt identifikatorini uzatadi.
Kirishni tasdiqlab, mijoz hamyon tomonida sessiya yaratadi, unga ton_proof imzosini qoʻyadi va imzoni kirishga rozilik bilan birga yuboradi. ton_proof — bu hamyonning manzil unga tegishli ekanligini saytga isbotlaydigan imzo; u pul oʻtkazmalariga ruxsat bermaydi. Imzo matni uchta qiymatdan yigʻiladi: sayt botining identifikatori, TON Connectdagi sayt identifikatori va sessiya raqami, tc-login prefiksi bilan. Shunday qilib, imzo bitta aniq kirishga bogʻlangan va boshqa kirish uchun yaramaydi.
API sxemasida bunga kirish soʻroviga javoban uchta maydon (hamyon kerakligi belgisi, sessiya raqami, sayt identifikatori) va kirishni tasdiqlashda bitta maydon — hamyon egaligi imzosi bilan tonconnect_session qoʻshilgan. Sxema jurnaliga koʻra, bu 12-oktabrdagi 231-qavat. core.telegram.org saytida 225-qavat tasvirlangan va u yerda hamyon maydonlari yoʻq.
Mijoz kodidagi chaqiruvlar zanjiri
- Server
urlAuthResultRequestkirish soʻrovigarequest_walletbelgisi vatc_session_id,tc_client_idmaydonlari bilan javob beradi. - «Kirish» tugmasini bosgandan soʻng, mijoz sayt identifikatori va manifest manzili bilan
wallet.tonConnectCreateSessionni chaqiradi. - Server manifestni oʻqishini kutadi:
wallet.tonConnectGetPendingsoʻrovi har 5 soniyada, koʻpi bilan 12 marta, yaʼni bir daqiqagacha. - Sessiya kalitini roʻyxatdan oʻtkazadi (
wallet.tonConnectRegisterKey), chaqiruvni oladi va javobniton_proofbilan birga imzolaydi. messages.acceptUrlAuthnitonconnect_sessionmaydoni bilan yuboradi — sessiya raqami, chaqiruvga javob, tana va hamyon egaligi imzosi.
Qaysi saytlar hamyonni olmaydi
Mijoz manifest manzilini saytdan olmaydi, balki oʻzi tuzadi: https://<domain>/tonconnect-manifest.json. Manifest — bu TON Connect hamyonda koʻrsatadigan sayt nomi va ikonkasini oʻz ichiga olgan kichik fayl. Agar server boshqa xostdan manifest qaytarsa, mijoz notoʻgʻri manifest haqidagi xato bilan rad etadi. Shunday qilib, siz kirayotgan sayt va hamyonni oladigan sayt har doim bir xil boʻladi.
Ikki domenga hamyon umuman berilmaydi va oynada «Wallet access can't be granted to this site» yozuvi paydo boʻladi. Birinchisi — telegram.org. Ikkinchisini mijoz serverdan bilib oladi: bu Telegramning wallet.getProofChallenge javobida hamyon egaligini tekshirish uchun oʻzi foydalanadigan domendir. Kodga koʻra, hamyonning Telegramning oʻziga egaligini tasdiqlovchi imzoni boshqa sayt orqali olish mumkin emas.
Agar hamyon boshqa qurilmada yaratilgan boʻlsa
Telegramning oʻrnatilgan hamyoni kalitni qurilmada saqlaydi. Agar bu kompyuterda joriy kalit boʻlmasa, kirish oynasi «This device doesn't hold the current key of this wallet» va «Restore the key» havolasini koʻrsatadi: kalitni kirish oynasini yopmasdan tiklash mumkin. Kalitsiz tugma faol boʻlmaydi va saytga kirish odatdagidek, hamyonsiz amalga oshiriladi.
Bu qayerda allaqachon mavjud
| Qayerda | Nima | Sana |
|---|---|---|
| tdesktop, dev tarmogʻi | hamyonli kirish oynasi, oltita interfeys qatori | 12-oktabr |
| tdesktop, dev tarmogʻi | oyna poygalari tuzatildi, hamyon oldindan yuklanadi | 13-oktabr |
| macOS uchun Telegram beta 13.0.283345 | kodda inputTonConnectOauthSession turi, interfeys qatorlari yoʻq | 20-oktabr |
| Telegram Desktopning soʻnggi relizi 7.3.1 | yoʻq | 10-oktabr |
| TDLib | yoʻq | — |
Hamyon soʻrovi serverda yoqilganmi, mijozlar orqali koʻrinmaydi: oyna faqat sayt uni soʻraganida paydo boʻladi, Telegram esa saytlar uchun koʻrsatmalar eʼlon qilmagan. Hozirgacha TON Connect orqali ulanishda Telegramning oʻrnatilgan hamyoni tomonidan berilgan ton_proof imzosini koʻplab saytlar tekshira olmas edi — buning uchun TON Connect 5.0 versiyasidan boshlab alohida tekshirish tarmogʻi kerak.




