初始数据 SDK 的这一部分提供了使用 Mini Apps init data 的实用程序。 ( H7 f! J/ Q) A) U, e+ x
& B1 G% F( b: o) O0 O* I
解析该库包含函数 parseInitData,可从查询参数中提取初始化数据 信息。 下面是一个使用示例: - import { parseInitData } from '@telegram-apps/sdk';
6 a. u: r( | p- v2 d - - M y9 ]+ P3 a& m! ]
- // Let's imagine, we have init data in a raw format like this. Telegram application is
3 O: [# H2 i M+ q - // sending it in the exact same format.: q4 t5 l R, B. s
- const initDataString =6 h5 b1 x7 A6 z6 [, H/ ]3 c# L @6 i
- 'query_id=AAHdF6IQAAAAAN0XohDhrOrc' +& a( P: u$ Q- a" R D( s
- '&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' +
J5 J7 x/ t8 d+ |1 q" }- d - '&auth_date=1662771648' +
+ K/ k9 m- f w) P' i5 d& l - '&hash=c501b71e775f74ce10e377dea85a7ea24ecd640b223ea86dfe453e0eaed2e2b2';, ~) H# c7 x( l: p( Y+ B! R- a
2 a9 {$ l# O1 g! e- // Extract init data.
+ H3 ]' I6 [ b; R: q - console.log(parseInitData(initDataString));
' p& v! t: d' T! X! ~# J - // or o& o/ O7 h2 r4 ~" W
- console.log(parseInitData(new URLSearchParams(initDataString)));
6 A+ c) T6 ^, X7 w0 Y3 G1 e - # q0 q4 P% Y. o& G( s0 W5 w8 d
- // Output:
2 q/ u% A/ I/ ?, C. p - // {4 p# L. O' P* t$ K% p1 K9 t
- // authDate: 2022-09-10T01:00:48.000Z,
( c8 J6 K7 X0 v+ P& } - // hash: 'c501b71e775f74ce10e377dea85a7ea24ecd640b223ea86dfe453e0eaed2e2b2',5 e% N1 l3 @- K% w9 r4 J9 }
- // queryId: 'AAHdF6IQAAAAAN0XohDhrOrc',
& }* W7 L4 X8 l, H6 e - // user: {/ s- u6 S: [1 E2 i/ n' E
- // id: 279058397,
- Q! H$ Q/ H4 C8 _! L: E; v - // firstName: 'Vladislav',7 D2 o% o& ^: ?* h* G
- // lastName: 'Kibenko',1 t. S. q8 @, q
- // username: 'vdkfrost',
; n7 S" \4 R9 E: S - // languageCode: 'ru',5 c$ T( o( x m
- // isPremium: true- C( e. i" u( J( N
- // }1 D% E1 E; A& F9 a# \" `7 C" a9 G
- // }
复制代码 该函数提取所需的参数,并自动验证其类型。 如果 中的属性类型或值无效,则会出错。 要了解返回类型的更多信息,请参阅 的 InitData 类型页面。
8 \% ?3 p! m$ V" Q7 {$ m2 D5 H) L- O( F
验证和签名验证和签名实用程序已移至独立的 软件包 - @telegram-apps/init-data-node 中。
+ }+ t. D4 x+ y6 l! |' k8 R0 T$ k& x: [3 }% y% V1 s* n3 [
|