From 78ce93dad120f80d8b42eb763d81b04d48d07907 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D1=96=D0=B9?=
<61122611+CrazyTapok-bit@users.noreply.github.com>
Date: Thu, 15 Feb 2024 23:54:00 +0200
Subject: [PATCH 1/3] Updated to new version and improved examples
---
src/.vuepress/navbar/en.ts | 6 +-
src/.vuepress/navbar/uk.ts | 6 +-
src/docs/example/README.md | 9 +++
src/docs/example/login-winget.md | 64 ++++++++++++++++++
src/docs/{example.md => example/web-app.md} | 40 +++++------
src/docs/get-started/multiple.md | 6 +-
src/en/docs/example/README.md | 9 +++
src/en/docs/example/login-winget.md | 67 +++++++++++++++++++
.../docs/{example.md => example/web-app.md} | 50 +++++++-------
src/en/docs/get-started/multiple.md | 6 +-
10 files changed, 210 insertions(+), 53 deletions(-)
create mode 100644 src/docs/example/README.md
create mode 100644 src/docs/example/login-winget.md
rename src/docs/{example.md => example/web-app.md} (60%)
create mode 100644 src/en/docs/example/README.md
create mode 100644 src/en/docs/example/login-winget.md
rename src/en/docs/{example.md => example/web-app.md} (58%)
diff --git a/src/.vuepress/navbar/en.ts b/src/.vuepress/navbar/en.ts
index 5866537..b507c5d 100644
--- a/src/.vuepress/navbar/en.ts
+++ b/src/.vuepress/navbar/en.ts
@@ -8,5 +8,9 @@ export const enNavbar = navbar([
link: "/en/docs/README.md",
activeMatch: "^/en/docs/$"
},
- "/en/docs/example",
+ {
+ text: "Full example",
+ icon: "bolt",
+ link: "/en/docs/example/README.md"
+ }
]);
diff --git a/src/.vuepress/navbar/uk.ts b/src/.vuepress/navbar/uk.ts
index 37807d2..1483028 100644
--- a/src/.vuepress/navbar/uk.ts
+++ b/src/.vuepress/navbar/uk.ts
@@ -8,5 +8,9 @@ export const ukNavbar = navbar([
link: "/docs/README.md",
activeMatch: "^/docs/$"
},
- "/docs/example",
+ {
+ text: "Повний приклад",
+ icon: "bolt",
+ link: "/docs/example/README.md"
+ }
]);
diff --git a/src/docs/example/README.md b/src/docs/example/README.md
new file mode 100644
index 0000000..672efa0
--- /dev/null
+++ b/src/docs/example/README.md
@@ -0,0 +1,9 @@
+---
+title: Приклад коду
+icon: bolt
+index: false
+dir:
+ order: 5
+---
+
+
\ No newline at end of file
diff --git a/src/docs/example/login-winget.md b/src/docs/example/login-winget.md
new file mode 100644
index 0000000..ba95c1a
--- /dev/null
+++ b/src/docs/example/login-winget.md
@@ -0,0 +1,64 @@
+---
+title: Віджет входу
+icon: right-to-bracket
+order: 2
+head:
+ - - meta
+ - name: description
+ content: Як перевірити дані користувача, отримані через Telegram Login Widget на PHP
+---
+
+Ми намагаємось відобразити максимально повний приклад яким ви, скоріш за все, будете користуватись.
+
+```php
+addBot(
+ name: 'secondary',
+ token: 'TELEGRAM_BOT_TOKEN_2'
+ );
+
+ /** Використаю бот за замовчуванням */
+ $bot = $tgWebValid->bot();
+
+ /** Або, вказую з яким ботом хочу працювати*/
+ $bot = $tgWebValid->bot(
+ name: 'secondary'
+ );
+
+ /**
+ * Викликаю метод validateLoginWidget який перевіре дані
+ * отримані від Telegram Login Widget
+ */
+ $user = $bot->validateLoginWidget(
+ user: [/** Дані користувача */]
+ );
+
+ /** Якщо перевірка успішна, виведу сутність LoginWidget з усіма даними */
+ var_dump($user);
+
+} catch (ValidationException $e) {
+ // Отримаю виняток валідації якщо перевірку провалено
+} catch (BotException $e) {
+ // Помилившись з назвою бота буду перехоплювати цей виняток
+} catch (Exception $e) {
+ // Оброблю інші помилки, якщо такі будуть
+}
+```
\ No newline at end of file
diff --git a/src/docs/example.md b/src/docs/example/web-app.md
similarity index 60%
rename from src/docs/example.md
rename to src/docs/example/web-app.md
index c1ec4b7..3235657 100644
--- a/src/docs/example.md
+++ b/src/docs/example/web-app.md
@@ -1,7 +1,11 @@
---
-title: Повний приклад
-icon: bolt
-order: 5
+title: Міні додаток
+icon: tablet-screen-button
+order: 1
+head:
+ - - meta
+ - name: description
+ content: Як перевірити дані користувача, отримані через Telegram Mini App на PHP
---
Ми намагаємось відобразити максимально повний приклад яким ви, скоріш за все, будете користуватись.
@@ -10,7 +14,6 @@ order: 5
addBot(new BotConfig(
+ $tgWebValid->addBot(
name: 'secondary',
token: 'TELEGRAM_BOT_TOKEN_2'
- ));
-
- /**
- * Використаю бот за замовчуванням,
- * та викличу бажаний тип перевірки
- */
- $user = $tgWebValid->bot()->validateLoginWidget(
- user: [/** Дані користувача */]
);
- /** Якщо перевірка успішна, виведу сутність LoginWidget з даними про юзера */
- var_dump($user);
+ /** Використаю бот за замовчуванням */
+ $bot = $tgWebValid->bot();
+ /** Або, вказую з яким ботом хочу працювати*/
+ $bot = $tgWebValid->bot(
+ name: 'secondary'
+ );
+
/**
- * Або, вказую з яким ботом хочу працювати,
- * та викликаю бажаний тип перевірки
+ * Викликаю метод validateInitData який перевіре дані
+ * отримані від Telegram Mini App
*/
- $initData = $tgWebValid->bot(name: 'secondary')->validateInitData(
+ $initData = $bot->validateInitData(
initData: 'query_id=...'
);
diff --git a/src/docs/get-started/multiple.md b/src/docs/get-started/multiple.md
index c9ffac2..f8a185e 100644
--- a/src/docs/get-started/multiple.md
+++ b/src/docs/get-started/multiple.md
@@ -11,17 +11,15 @@ order: 3
```php
addBot(new BotConfig(
+$tgWebValid->addBot(
name: 'secondary',
token: 'TELEGRAM_BOT_TOKEN_2'
-));
+);
```
## Параметри {#parameters}
diff --git a/src/en/docs/example/README.md b/src/en/docs/example/README.md
new file mode 100644
index 0000000..83fde07
--- /dev/null
+++ b/src/en/docs/example/README.md
@@ -0,0 +1,9 @@
+---
+title: Full example
+icon: bolt
+index: false
+dir:
+ order: 5
+---
+
+
\ No newline at end of file
diff --git a/src/en/docs/example/login-winget.md b/src/en/docs/example/login-winget.md
new file mode 100644
index 0000000..7f4bb68
--- /dev/null
+++ b/src/en/docs/example/login-winget.md
@@ -0,0 +1,67 @@
+---
+title: Login Widget
+icon: right-to-bracket
+order: 2
+head:
+ - - meta
+ - name: description
+ content: How to validate data received via the Telegram Login Widget на PHP
+---
+
+We try to display as complete an example as possible, which you will most likely use.
+
+```php
+addBot(
+ name: 'secondary',
+ token: 'TELEGRAM_BOT_TOKEN_2'
+ );
+
+ /** I use the default bot */
+ $bot = $tgWebValid->bot();
+
+ /** Or, specify which bot I want to work with */
+ $bot = $tgWebValid->bot(
+ name: 'secondary'
+ );
+
+ /**
+ * Call the validateLoginWidget method,
+ * which checks the data received from the Telegram Login Widget
+ */
+ $user = $bot->validateLoginWidget(
+ user: [/** Дані користувача */]
+ );
+
+ /**
+ * If the check is successful,
+ * I will display the LoginWidget entity with all user data
+ */
+ var_dump($user);
+
+} catch (ValidationException $e) {
+ // I will get a validation exception if the check is failed
+} catch (BotException $e) {
+ // Having made a mistake with the name of the bot, I will catch this exception
+} catch (Exception $e) {
+ // I will process other errors if there are any
+}
+```
\ No newline at end of file
diff --git a/src/en/docs/example.md b/src/en/docs/example/web-app.md
similarity index 58%
rename from src/en/docs/example.md
rename to src/en/docs/example/web-app.md
index bb24ec3..1da6a6d 100644
--- a/src/en/docs/example.md
+++ b/src/en/docs/example/web-app.md
@@ -1,7 +1,11 @@
---
-title: Full example
-icon: bolt
-order: 5
+title: Mini App
+icon: tablet-screen-button
+order: 1
+head:
+ - - meta
+ - name: description
+ content: How to validate data received via the Telegram Web App на PHP
---
We try to display as complete an example as possible, which you will most likely use.
@@ -10,7 +14,6 @@ We try to display as complete an example as possible, which you will most likely
addBot(new BotConfig(
+ $tgWebValid->addBot(
name: 'secondary',
token: 'TELEGRAM_BOT_TOKEN_2'
- ));
-
- /**
- * I use the default bot
- * and call the desired type of verification
- */
- $user = $tgWebValid->bot()->validateLoginWidget(
- user: [/** User data */]
);
+ /** I use the default bot */
+ $bot = $tgWebValid->bot();
+
+ /** Or, specify which bot I want to work with */
+ $bot = $tgWebValid->bot(
+ name: 'secondary'
+ );
+
/**
- * If the check is successful,
- * I will display the LoginWidget entity with data about the user
- */
- var_dump($user);
-
- /**
- * Or, I specify which bot I want to work with
- * and call the desired type of verification
+ * Call the validateInitData method,
+ * which checks the data received from the Telegram Mini App
*/
- $initData = $tgWebValid->bot(name: 'secondary')->validateInitData(
+ $initData = $bot->validateInitData(
initData: 'query_id=...'
);
- /** If the check is successful, I will output the InitData entity with all the data */
+ /**
+ * If the check is successful,
+ * I will output the InitData entity with all user data
+ */
var_dump($initData);
} catch (ValidationException $e) {
diff --git a/src/en/docs/get-started/multiple.md b/src/en/docs/get-started/multiple.md
index f74a930..ba975bc 100644
--- a/src/en/docs/get-started/multiple.md
+++ b/src/en/docs/get-started/multiple.md
@@ -11,17 +11,15 @@ Setting up multiple bots is very easy. For this, it is enough to call the `addBo
```php
addBot(new BotConfig(
+$tgWebValid->addBot(
name: 'secondary',
token: 'TELEGRAM_BOT_TOKEN_2'
-));
+);
```
## Parameters {#parameters}
From de966f963b94c8a9c6b95e85eff3550113e99f29 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D1=96=D0=B9?=
<61122611+CrazyTapok-bit@users.noreply.github.com>
Date: Fri, 16 Feb 2024 00:00:20 +0200
Subject: [PATCH 2/3] Updated pages links
---
src/docs/entity/init-data/README.md | 2 +-
src/docs/example/{web-app.md => mini-app.md} | 0
src/docs/validator/{web-app.md => mini-app.md} | 0
src/en/docs/entity/init-data/README.md | 2 +-
src/en/docs/example/{web-app.md => mini-app.md} | 0
src/en/docs/validator/{web-app.md => mini-app.md} | 0
6 files changed, 2 insertions(+), 2 deletions(-)
rename src/docs/example/{web-app.md => mini-app.md} (100%)
rename src/docs/validator/{web-app.md => mini-app.md} (100%)
rename src/en/docs/example/{web-app.md => mini-app.md} (100%)
rename src/en/docs/validator/{web-app.md => mini-app.md} (100%)
diff --git a/src/docs/entity/init-data/README.md b/src/docs/entity/init-data/README.md
index 5eec990..bf7349c 100644
--- a/src/docs/entity/init-data/README.md
+++ b/src/docs/entity/init-data/README.md
@@ -5,7 +5,7 @@ dir:
order: 1
---
-Цей об’єкт містить дані, які передаються в міні-програму під час її відкриття. Отримати доступ до цієї сутності можна виключно після успішної автентифікації користувача за допомогою валідатора [міні додаток](../../validator/web-app.md).
+Цей об’єкт містить дані, які передаються в міні-програму під час її відкриття. Отримати доступ до цієї сутності можна виключно після успішної автентифікації користувача за допомогою валідатора [міні додаток](../../validator/mini-app.md).
## Властивості {#properties}
diff --git a/src/docs/example/web-app.md b/src/docs/example/mini-app.md
similarity index 100%
rename from src/docs/example/web-app.md
rename to src/docs/example/mini-app.md
diff --git a/src/docs/validator/web-app.md b/src/docs/validator/mini-app.md
similarity index 100%
rename from src/docs/validator/web-app.md
rename to src/docs/validator/mini-app.md
diff --git a/src/en/docs/entity/init-data/README.md b/src/en/docs/entity/init-data/README.md
index 334cbbf..83f5434 100644
--- a/src/en/docs/entity/init-data/README.md
+++ b/src/en/docs/entity/init-data/README.md
@@ -5,7 +5,7 @@ dir:
order: 1
---
-This object contains the data that is passed to the applet when it is opened. This entity can only be accessed after successful user authentication using the validator [mini-app](../../validator/web-app.md).
+This object contains the data that is passed to the applet when it is opened. This entity can only be accessed after successful user authentication using the validator [mini-app](../../validator/mini-app.md).
## Properties {#properties}
diff --git a/src/en/docs/example/web-app.md b/src/en/docs/example/mini-app.md
similarity index 100%
rename from src/en/docs/example/web-app.md
rename to src/en/docs/example/mini-app.md
diff --git a/src/en/docs/validator/web-app.md b/src/en/docs/validator/mini-app.md
similarity index 100%
rename from src/en/docs/validator/web-app.md
rename to src/en/docs/validator/mini-app.md
From 1ab9b1716b24b873623deed8ae042a9bb98e8377 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D1=96=D0=B9?=
<61122611+CrazyTapok-bit@users.noreply.github.com>
Date: Fri, 16 Feb 2024 00:13:59 +0200
Subject: [PATCH 3/3] Improved page navigation
---
src/docs/get-started/usage.md | 6 +++++-
src/docs/validator/login-widget.md | 2 ++
src/docs/validator/mini-app.md | 2 ++
src/en/docs/get-started/usage.md | 6 +++++-
src/en/docs/validator/login-widget.md | 2 ++
src/en/docs/validator/mini-app.md | 2 ++
6 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/docs/get-started/usage.md b/src/docs/get-started/usage.md
index 829a5fd..f8d6afb 100644
--- a/src/docs/get-started/usage.md
+++ b/src/docs/get-started/usage.md
@@ -16,8 +16,12 @@ order: 4
* За потреба додайте інших ботів
*/
+/** Використайте бот за замовчуванням */
+$bot = $tgWebValid->bot();
+
+/** Або, вкажіть з яким ботом хочете працювати */
$bot = $tgWebValid->bot(
- name: 'secondary'
+ name: 'secondary'
);
```
diff --git a/src/docs/validator/login-widget.md b/src/docs/validator/login-widget.md
index 2cff0c8..3b8fbaa 100644
--- a/src/docs/validator/login-widget.md
+++ b/src/docs/validator/login-widget.md
@@ -10,6 +10,8 @@ head:
Ми перевіряємо автентифікацію та цілісність отриманих даних, порівнявши отриманий хеш-параметр із шістнадцятковим представленням підпису `HMAC-SHA-256` рядка перевірки даних із хешем `SHA256` маркера бота, який використовується як секретний ключ. Деталі [тут](https://core.telegram.org/widgets/login#checking-authorization)
+:rocket: Повний приклад коду доступний на [цій сторінці](../example/login-winget.md)
+
## Приклад {#example}
```php
diff --git a/src/docs/validator/mini-app.md b/src/docs/validator/mini-app.md
index 726a556..f609882 100644
--- a/src/docs/validator/mini-app.md
+++ b/src/docs/validator/mini-app.md
@@ -10,6 +10,8 @@ head:
Ми перевіряємо цілісність отриманих даних, порівнявши отриманий хеш-параметр із шістнадцятковим представленням підпису `HMAC-SHA-256` рядка перевірки даних із секретним ключем, який є підписом `HMAC-SHA-256` маркер бота з постійним рядком, `WebAppData` який використовується як ключ. Деталі [тут](https://core.telegram.org/bots/webapps#validating-data-received-via-the-mini-app)
+:rocket: Повний приклад коду доступний на [цій сторінці](../example/mini-app.md)
+
## Приклад {#example}
```php
diff --git a/src/en/docs/get-started/usage.md b/src/en/docs/get-started/usage.md
index 3269de2..bce2320 100644
--- a/src/en/docs/get-started/usage.md
+++ b/src/en/docs/get-started/usage.md
@@ -16,8 +16,12 @@ First of all, specify the name of the bot, the name of which you need to check t
* Add other bots if needed
*/
+/** I use the default bot */
+$bot = $tgWebValid->bot();
+
+/** Or, specify which bot I want to work with */
$bot = $tgWebValid->bot(
- name: 'secondary'
+ name: 'secondary'
);
```
diff --git a/src/en/docs/validator/login-widget.md b/src/en/docs/validator/login-widget.md
index 56661e2..5a81e2c 100644
--- a/src/en/docs/validator/login-widget.md
+++ b/src/en/docs/validator/login-widget.md
@@ -10,6 +10,8 @@ head:
We verify the authentication and integrity of the received data by comparing the received hash parameter to the hexadecimal representation of the `HMAC-SHA-256` signature of the data validation string with the `SHA256` hash of the bot token used as the secret key. Details [here](https://core.telegram.org/widgets/login#checking-authorization)
+:rocket: A complete code example is available at [this page](../example/login-winget.md)
+
## Example {#example}
```php
diff --git a/src/en/docs/validator/mini-app.md b/src/en/docs/validator/mini-app.md
index d6fb0cf..411e709 100644
--- a/src/en/docs/validator/mini-app.md
+++ b/src/en/docs/validator/mini-app.md
@@ -10,6 +10,8 @@ head:
We verify the integrity of the received data by comparing the received hash parameter with the hexadecimal representation of the `HMAC-SHA-256` signature of the data validation string with the secret key that is the `HMAC-SHA-256` signature of the bot token with the constant string `WebAppData` used as a key Details [here](https://core.telegram.org/bots/webapps#validating-data-received-via-the-mini-app)
+:rocket: A complete code example is available at [this page](../example/mini-app.md)
+
## Example {#example}
```php