Skip to content

Commit

Permalink
Merge pull request #28 from CrazyTapok-bit/develop
Browse files Browse the repository at this point in the history
Updated to new version and improved
  • Loading branch information
CrazyTapok-bit authored Feb 15, 2024
2 parents 4d02849 + 1ab9b17 commit a3d79ff
Show file tree
Hide file tree
Showing 18 changed files with 230 additions and 57 deletions.
6 changes: 5 additions & 1 deletion src/.vuepress/navbar/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
]);
6 changes: 5 additions & 1 deletion src/.vuepress/navbar/uk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,9 @@ export const ukNavbar = navbar([
link: "/docs/README.md",
activeMatch: "^/docs/$"
},
"/docs/example",
{
text: "Повний приклад",
icon: "bolt",
link: "/docs/example/README.md"
}
]);
2 changes: 1 addition & 1 deletion src/docs/entity/init-data/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ dir:
order: 1
---

Цей об’єкт містить дані, які передаються в міні-програму під час її відкриття. Отримати доступ до цієї сутності можна виключно після успішної автентифікації користувача за допомогою валідатора [міні додаток](../../validator/web-app.md).
Цей об’єкт містить дані, які передаються в міні-програму під час її відкриття. Отримати доступ до цієї сутності можна виключно після успішної автентифікації користувача за допомогою валідатора [міні додаток](../../validator/mini-app.md).

## Властивості {#properties}

Expand Down
9 changes: 9 additions & 0 deletions src/docs/example/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Приклад коду
icon: bolt
index: false
dir:
order: 5
---

<Catalog />
64 changes: 64 additions & 0 deletions src/docs/example/login-winget.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: Віджет входу
icon: right-to-bracket
order: 2
head:
- - meta
- name: description
content: Як перевірити дані користувача, отримані через Telegram Login Widget на PHP
---

Ми намагаємось відобразити максимально повний приклад яким ви, скоріш за все, будете користуватись.

```php
<?php

use TgWebValid\TgWebValid;
use TgWebValid\Exceptions\BotException;
use TgWebValid\Exceptions\ValidationException;
use Exception;

include './vendor/autoload.php';

try {
/**
* Вказую налаштування токена, та вмикаю роботу з винятками
*/
$tgWebValid = new TgWebValid(
token: 'TELEGRAM_BOT_TOKEN',
throw: true
);

/** Налашту ще один додатковий бот щоб працювати з ними */
$tgWebValid->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) {
// Оброблю інші помилки, якщо такі будуть
}
```
40 changes: 21 additions & 19 deletions src/docs/example.md → src/docs/example/mini-app.md
Original file line number Diff line number Diff line change
@@ -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
---

Ми намагаємось відобразити максимально повний приклад яким ви, скоріш за все, будете користуватись.
Expand All @@ -10,42 +14,40 @@ order: 5
<?php

use TgWebValid\TgWebValid;
use TgWebValid\BotConfig;
use TgWebValid\Exceptions\BotException;
use TgWebValid\Exceptions\ValidationException;
use Exception;

include './vendor/autoload.php';

try {
/** Вказую налаштування за замовчуванням */
/**
* Вказую налаштування токена, та вмикаю роботу з винятками
*/
$tgWebValid = new TgWebValid(
token: 'TELEGRAM_BOT_TOKEN',
throw: true
);

/** Налаштую ще один додатковий бот щоб працювати з ними */
$tgWebValid->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=...'
);

Expand Down
6 changes: 2 additions & 4 deletions src/docs/get-started/multiple.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,15 @@ order: 3
```php
<?php

use TgWebValid\BotConfig;

/**
* Спочатку налаштуйте базову конфігурацію
* Після цього, додайте необхідну кількість ботів
*/

$tgWebValid->addBot(new BotConfig(
$tgWebValid->addBot(
name: 'secondary',
token: 'TELEGRAM_BOT_TOKEN_2'
));
);
```

## Параметри {#parameters}
Expand Down
6 changes: 5 additions & 1 deletion src/docs/get-started/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,12 @@ order: 4
* За потреба додайте інших ботів
*/

/** Використайте бот за замовчуванням */
$bot = $tgWebValid->bot();

/** Або, вкажіть з яким ботом хочете працювати */
$bot = $tgWebValid->bot(
name: 'secondary'
name: 'secondary'
);
```

Expand Down
2 changes: 2 additions & 0 deletions src/docs/validator/login-widget.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ head:

Ми перевіряємо автентифікацію та цілісність отриманих даних, порівнявши отриманий хеш-параметр із шістнадцятковим представленням підпису `HMAC-SHA-256` рядка перевірки даних із хешем `SHA256` маркера бота, який використовується як секретний ключ. Деталі [тут](https://core.telegram.org/widgets/login#checking-authorization)

:rocket: Повний приклад коду доступний на [цій сторінці](../example/login-winget.md)

## Приклад {#example}

```php
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/en/docs/entity/init-data/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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}

Expand Down
9 changes: 9 additions & 0 deletions src/en/docs/example/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Full example
icon: bolt
index: false
dir:
order: 5
---

<Catalog />
67 changes: 67 additions & 0 deletions src/en/docs/example/login-winget.md
Original file line number Diff line number Diff line change
@@ -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
<?php

use TgWebValid\TgWebValid;
use TgWebValid\Exceptions\BotException;
use TgWebValid\Exceptions\ValidationException;
use Exception;

include './vendor/autoload.php';

try {
/**
* I specify the token settings and enable work with exceptions
*/
$tgWebValid = new TgWebValid(
token: 'TELEGRAM_BOT_TOKEN',
throw: true
);

/** I will set up another additional bot to work with them */
$tgWebValid->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
}
```
Loading

0 comments on commit a3d79ff

Please sign in to comment.