Როგორ ინტეგრირდება კაზინო Telegram WebApp
რატომ არის Telegram WebApp კაზინო
დაბალი ხახუნი: 1-2 ტაპის შესასვლელი ბოტთან დიალოგიდან, „საიტის ძიების“ გარეშე.
მყისიერი fich მიწოდება: frontend ცხოვრობს თქვენს დომენზე, გამოშვებები CDN- ის საშუალებით.
Telegram პროფილის ბმული: მომხმარებლის გასაგები იდენტიფიკატორი და მზა საკომუნიკაციო არხები (ბოტი შეტყობინებები იარაღის ნაცვლად).
მარკეტინგის გაშუქება: ბმულები. მე/... "და ღილაკები არხებში/ჩათებში.
არქიტექტურა: რა არის ინტეგრაცია
კომპონენტები:1. Bot API ფენა (webhook/long-polling): იღებს ბრძანებებს, ატარებს მენიუს, იწყებს WebApp- ს.
2. WebApp (SPA/PWA) თქვენს დომენში: ლობი, პროფილი, პრომო, მსუბუქი თამაშის სცენები, სალარო.
3. პლატფორმის API კაზინო: ავთენტიფიკაცია, ბალანსი/განაკვეთები, პრემია, სალარო, ისტორია.
4. სხდომების/მოლეკულების საცავი: დაკავშირება 'telegram _ user _ id'.
5. CDN + ანტი-ბოტი/from: მინი პროგრამების ასეტების დაცვა და განაწილება.
გაშვების ნაკადი:- მომხმარებელი წერს ბოტს და დააჭერს ღილაკს „გახსნა“ (ვებ _ app).
- Telegram აყენებს თქვენს WebApp- ს კლიენტს და გადასცემს 'initData' (მომხმარებლის/ჩატის ხელმოწერილი პარამეტრები).
- WebApp ამოწმებს ხელმოწერას უკანა პლანზე, ქმნის/განაახლებს სესიას კაზინოში და აძლევს UI.
WebApp- ის გაშვება: ღილაკები და deep-link
პარამეტრები:- Кнопка в ReplyKeyboard/InlineKeyboard c `web_app: {url: "https://your. app/tg „}“ - იხსნება მინი პროგრამა Telegram- ის შიგნით.
- Main Menu (BotFather - Menus Button) - რეგულარული გახსნა ღილაკი.
- Deep-link `https://t. me/< bot>? startapp =
"- გადაყარეთ საწყისი კონტექსტი (მაგალითად, პრომო/რეფერალი/თამაში).
რჩევა: გამოიყენეთ 'startapp' „განზრახვის“ უსაფრთხო გადაცემისთვის (რომელი ეკრანის გახსნა). შინაარსისა და უფლებების დადგენა ხელმოწერის გადამოწმების შემდეგ.
ანგარიშის ავთენტიფიკაცია და საბრძოლო დარტყმა
რა მოდის WebApp- ში
Telegram კლიენტი დასძენს JS ობიექტს 'Telegram ფანჯარას. WebApp 'და სტრიქონი' initData '/' initAtaUnsafe "- ინფორმაცია მომხმარებლის/ჩატის, დროისა და ხელმოწერის შესახებ.
როგორ დავადასტუროთ მომხმარებელი
1. ფრონტზე აიღეთ 'Telegram. WebApp. initAtata 'და გაგზავნეთ იგი ისე, როგორც არის თქვენი ზურგჩანთისთვის.
2. უკანა პლანზე შეამოწმეთ ხელმოწერა Telegram ალგორითმის მიხედვით (HMAC-SHA256 მონაცემთა სტრიქონზე, რომელსაც აქვს ღილაკი, რომელიც გამომდინარეობს ბოტის ნიშნიდან; ზუსტი ალგორითმი - Telegram- ის ოფიციალურ დოკუმენტაციაში).
3. თუ შემოწმება წარმატებულია, ამოიღეთ 'მომხმარებელი. id ',' username 'და მეტამონაცემები იპოვნეთ ან შექმნათ კავშირი' telegram _ user _ id '.
4. მიეცით მოკლემეტრაჟიანი JWT/კაზინოს პლატფორმის სესიის ნიშანი ფრონტზე (მაგალითად, TTL 10-30 წთ + უსაფრთხო API).
მონაცემთა გაცვლა bot WebApp
WebApp- დან ბოტამდე: 'Telegram. WebApp. sendData(JSON. stringify (payload)) '- ბოტი მიიღებს' web _ app _ data "და შეუძლია უპასუხოს შეტყობინებას/ღილაკს.
პატრონი: რთული ოპერაციები (სალარო, გადამოწმება) მივყავართ WebApp- ს; ბოტი - გამომწვევი/შეტყობინებებისთვის („პრემია გააქტიურებულია“, „დამტკიცებულია KYC“).
სალარო და პლატფორმების შეზღუდვები
გადახდა Telegram- ში: პლატფორმას აქვს ჩაშენებული საგადახდო მექანიკა და ცალკეული წესები კატეგორიებში. გემბლინგისთვის გამოიყენეთ ადგილობრივი კანონები და Telegram- ის პოლიტიკა.
პრაქტიკული მიდგომა:- გახსენით ჩეკი გარე ბრაუზერში (deeplink 'target = _ blank') სრულფასოვანი KYC/AML/KYT კონტურით და idempotence კლავიშებით.
- შევსების/დასკვნების დასადგენად, აჩვენეთ მხოლოდ მომხმარებლის ქვეყნისთვის დასაშვები მეთოდები.
- ყოველთვის დუბლირებული დასტურია ბოტის ჩეთ რუმებში (როგორც ჩანაცვლება).
UX: როგორ გავაკეთოთ „მშობლიური“ და სწრაფად
თემა/ფერები: გამოიყენეთ 'Telegram. WebApp. themeParams 'და' colorScheme '(Light/dark), შეცვალეთ rantime' themeChanged '.
ნავიგაცია: 'მაინბუტონი. Settext ('გაგრძელება'). show()`; `BackButton. შოუ () 'და დამუშავება' Event ('backButtonClicked',...) '.
Viewport: `Telegram. WebApp. expand()`; დააკვირდით 'viewsport Height' (განსაკუთრებით iOS).
ლოკალიზაცია: მიიღეთ ენა 'initAtaUnsafe. user. language _ code '+ საკუთარი i18n.
პროდუქტიულობა: PWA + Service Worker, CDN hash assets, lazy-chunks. პირველი ეკრანი 150-200 KB Br.
მიკრო მაგალითი (ფრონტი):html
<script>
const tg = window. Telegram. WebApp;
tg. expand();
tg. MainButton. Settext ('Lobby'). show(). onClick(() => {
//ჩვენ გამოგიგზავნით სიგნალს botu (არა აუცილებელი), ან უბრალოდ route SPA tg- ში. HapticFeedback. impactOccurred('medium');
});
//initData- ს გადაცემა სერვერზე fetch გადამოწმებისთვის ('/app/tg/auth ', {method:' POST ', headers: {' შინაარსის ტიპი ": 'განაცხადი/json'}, body: JSON. stringify({ initData: tg. initData })});
</script>
უსაფრთხოება: სავალდებულო ზომები
ხელმოწერის შემოწმება სერვერზე. შეინახეთ „ახალი ფანჯარა“ (მაგალითად, 1-5 წუთი) - უარი თქვით ძველ ხელმოწერებზე.
იდენტურობის კავშირი: 'telegram _ user _ id' არის პროფილის ატრიბუტი, მაგრამ ფულის წვდომა ყოველთვის თქვენი ნიშნის/სესიის საშუალებით ხდება.
ვებჰუკი ბოტა: საიდუმლო გზა ('/bot
Anti bot: Device-fingerprint და ქცევითი სიგნალები WebApp, rate-limit 'telegram _ user _ id' და IP.
შინაარსის უსაფრთხოება: CSP მინი აპის დომენისთვის, 'X-Frame-Options' ხელს არ უშლის Telegram- ში ინტეგრაციას, მკაცრი CORS API- ს.
ლოგოები და PII: შენიღბეთ, შეინახეთ GDPR/ადგილობრივი სტანდარტებით, გამოიყენეთ WORM გადახდის/თამაშის მოვლენებისთვის.
ტელემეტრია და ანალიტიკა
RUM: TTFB/LCP/TTI WebApp- ის შიგნით; события «open_from_deeplink», «auth_ok», «deposit_start/success», «bet_place».
არხის ეტიკეტები: გადაიტანეთ რეფერატი/utm 'startapp- ის საშუალებით და დაუკავშირდით კაზინოს სესიას.
SLO: p95 'auth _ via _ initData' 200-300 ms, p95 „პირველი ეკრანი“ - 2 წმ, ხელმოწერის გადამოწმების შეცდომა <0. 1%.
ფროიდის სიგნალები: ანომალიები ქვეყნის/საათის/მოწყობილობების მიხედვით, მასობრივი აღმოჩენები მოქმედების გარეშე, განმეორებითი „startapp“.
ტიპიური backend კონტური (ფსევდო კოდი)
pseudo
POST /api/tg/auth { initData }
Assert verifyTelegiSignature (initData )//მკაცრად Telegram let tgUser = parse (initData)
let account = findOrCreateByTelegram(tgUser. id)
let session = issueJWT(account_id, ttl=20m, scope='webapp')
return { token: session. jwt, account }
POST /api/cashier/deposit { token, method, amount }
assert auth(token)
assert geoAllowed(account. country)
createIdempotencyKey()
redirecttoPSP (... )//გარე ბრაუზერში
POST /api/bot/webhook verifyTelegramSignatureOrSecret()
handle commands, web_app_data, callbacks reply with messages/buttons
კაზინოსთვის Telegram WebApp- ის გაშვების სია
კანონი და პოლიტიკა
- იურისდიქციები, გეო-ბლოკირება, RG/KYC ტექსტები ლოკალში.
- Telegram პოლიტიკა თქვენი კატეგორიისთვის, ქვეყნების/არხების თეთრი სიები.
ავთენტიფიკაცია
- სერვერის ხელმოწერის შემოწმება 'initData' (ახალი ფანჯრის ჩათვლით).
- Linkovka 'telegram _ user _ id account _ id', მოკლე JWT.
სალარო
- ჩეკების ამოღება გარე ბრაუზერში (სადაც გჭირდებათ), idempotence, KYC/KYT.
- გეო-დამოკიდებული მეთოდები, ბო-შეტყობინებების სტატუსის დუბლირება.
Frontend
- თემა/ფერები 'themeParams', 'MainButton/BackButton', 'expand ()'.
- PWA/SW, CDN hash ასეტებით, LCP-2.
უსაფრთხოება
- ვებჰუკი: საიდუმლო/allowlist/Timauts.
- Rate-limits, ანტი-ბოტი, CSP/CORS.
- Logs WORM ფულადი/თამაშებისთვის; PII შენიღბვა.
ანალიტიკა
- RUM მეტრიკა, ონბორდის/ფულადი სახსრების/განაკვეთების მოვლენები.
- არხის ატრიბუტი 'startapp' მეშვეობით.
ანტი შაბლონები
ენდობა 'initData' ფრონტზე სერვერის გადამოწმების გარეშე.
შეეცადეთ შეცვალოთ სრული ჩეკი WebApp- ში, უგულებელყოთ პოლიტიკა/იურისდიქცია.
თემის/ფერების სიმარტივე არ იკითხება Telegram- ის ბნელ/ნათელ თემაში.
idempotence ნაკლებობა ბოტის სალაროებში და ვებჰუკებში.
გრძელი სესიები როტაციისა და გაწვევის გარეშე.
მონოლითური ბანდლი 5-10 MB არის ნელი პირველი ეკრანი და გამოტოვა სესიები.
Telegram WebApp- ის ინტეგრაცია კაზინოს აძლევს სწრაფ შესასვლელს, მოსახერხებელ კომუნიკაციას და „მსუბუქი“ კლიენტს ინსტალაციის გარეშე. წარმატება - სწორად ავთენტიფიკაციის გზით 'initData', ანგარიშის სისუფთავე და გადახდის/შინაარსის პოლიტიკის დაცვა. დაამატეთ მშობლიური UX (თემა, ღილაკები, haptic), CDN ასეტების მიწოდება, მკაცრი უსაფრთხოება და გაზომილი ანალიტიკა - და მინი პროგრამა გახდება ეფექტური acquisition და retention არხი, რომელიც ფართოვდება ტკივილის გარეშე.