初始数据 SDK 的这一部分提供了使用 Mini Apps init data 的实用程序。
+ M2 S: _0 A4 ]% }% d* L. d4 ?: N$ [) x B% n5 Z7 G o4 ?3 B
解析该库包含函数 parseInitData,可从查询参数中提取初始化数据 信息。 下面是一个使用示例: - import { parseInitData } from '@telegram-apps/sdk';, T& r" O- D7 v: B
- # g# z. N8 W! n. C/ [7 r' Y
- // Let's imagine, we have init data in a raw format like this. Telegram application is
3 c8 s6 @& t) c) d% c- | - // sending it in the exact same format.8 D: \: F5 c# W1 t$ K
- const initDataString =0 H$ ]7 e) x$ y1 i) q' n9 ? ?
- 'query_id=AAHdF6IQAAAAAN0XohDhrOrc' +& f. x" J, }$ r' }- M0 f6 M
- '&user=%7B%22id%22%3A279058397%2C%22first_name%22%3A%22Vladislav%22%2C%22last_name%22%3A%22Kibenko%22%2C%22username%22%3A%22vdkfrost%22%2C%22language_code%22%3A%22ru%22%2C%22is_premium%22%3Atrue%7D' +
. }: a9 \6 c& i2 \" r0 j4 j, A - '&auth_date=1662771648' +
* j: p% B7 t0 r7 Z, m. @8 ^ }( @ - '&hash=c501b71e775f74ce10e377dea85a7ea24ecd640b223ea86dfe453e0eaed2e2b2';
. X8 g3 K3 V+ z - * c/ U/ G. |# v" E/ L
- // Extract init data., L5 @/ H$ w- u. \0 l
- console.log(parseInitData(initDataString));1 k% [. O+ P+ v; Z
- // or9 w( o ?9 w4 n" B+ f& N5 D
- console.log(parseInitData(new URLSearchParams(initDataString)));
: I4 ~* V0 r ~" V& Y- C' h( Z' f
; D% q1 N! r( L) _( f( a0 T- // Output:
7 Z% u( ]* a" N, m7 U; m - // {9 [( ]$ }% u! B, c( d9 M
- // authDate: 2022-09-10T01:00:48.000Z,- k0 ?: a, c) ~ }+ |# l# C
- // hash: 'c501b71e775f74ce10e377dea85a7ea24ecd640b223ea86dfe453e0eaed2e2b2',: k: Y ]' }# A; n& S: A
- // queryId: 'AAHdF6IQAAAAAN0XohDhrOrc',
( i. \ A! n" r - // user: {
$ h3 @ y. B: x) q5 L5 ~ - // id: 279058397,
@8 e7 M/ _/ T( @ - // firstName: 'Vladislav',2 o# g B" D. ]) T S; R7 }4 T6 G
- // lastName: 'Kibenko',
: i# R2 v L2 G" o9 R: N, i - // username: 'vdkfrost',
. N1 p* m% y7 I" _5 A7 Y - // languageCode: 'ru',0 p+ M" Y" W) A
- // isPremium: true
9 I# t' p" h, G$ x2 l( x - // }; Z6 }) z+ w, }
- // }
复制代码 该函数提取所需的参数,并自动验证其类型。 如果 中的属性类型或值无效,则会出错。 要了解返回类型的更多信息,请参阅 的 InitData 类型页面。9 |4 \; r3 @1 K2 P* [
, X V5 a' Y( r9 U" j
验证和签名验证和签名实用程序已移至独立的 软件包 - @telegram-apps/init-data-node 中。
8 ~: Q! r: w; t5 D4 B+ ~
$ }) v+ O2 d# F: ~! @ |