Перейти к содержимому

TGZ

initVars

Метод принимает переменные по ссылке и записывает в них определенные значения из пришедшего от Telegram события, если они доступны. Если данные не пришли, то в переменные будет передан null

Параметры метода

#НазваниеТипБудет передан
1&chat_idintИдентификатор чата
2&user_idintИдентификатор пользователя
3&textstringТекст сообщения
4&typestringТип события
5&callback_datastringДанные пришедшего callback
6&query_idstringИдентификатор Callback или Inline Query
7&msg_idint|stringИдентификатор сообщения
8&is_botboolЯвляется ли пользователь ботом
9&is_commandboolЯвляется ли сообщение командой

Возвращает

Массив с данными пришедшего события

Примеры использования

php
<?php
require_once __DIR__ . 'vendor/autoload.php';

use ZhenyaGR\TGZ\TGZ;

$tg = TGZ::create(ТОКЕН);
// В $update хранится событие, которое пришло от Телеграма
$update = $tg->initVars($chat_id, $user_id, $text, $type, $callback_data, $query_id, $msg_id, $is_bot, $is_command);

if ($type === 'text') { // Проверяем тип события
    $tg->reply("Твой user_id - " . $user_id);
}
php
<?php
require_once __DIR__ . 'vendor/autoload.php';

use ZhenyaGR\TGZ\TGZ;

$tg = TGZ::create(ТОКЕН);

// В $update хранится событие, которое пришло от Телеграма.
// Все переменные (chat_id, user_id и т.д.) будут заполнены по ссылке.
$tg->initVars($chat_id, $user_id, $text, $type, $callback_data, $query_id, $msg_id, $is_bot, $is_command);

if ($type === 'text') {
    $tg->reply("Привет, " . ($is_bot ? "другой бот!" : "пользователь!") . " Твой ID: " . $user_id . ", текст: " . $text);

} elseif ($type === 'bot_command') {
    $tg->reply("Вы отправили команду: " . $text);

} elseif ($type === 'callback_query') {
    $tg->answerCallbackQuery($query_id, ['text' => 'Получены данные: ' . $callback_data]);
    $tg->reply('Вы выбрали: ' . $callback_data);

} elseif ($type === 'inline_query') {
    // В этом случае text будет содержать запрос пользователя
    $results = [
        $tg->inline('article')
            ->id('inline_response_1')
            ->title('Ответ на inline-запрос')
            ->description('Ваш запрос: ' . $text)
            ->text('Вы ввели: ' . $text)
            ->create()
    ];
    $tg->answerInlineQuery($query_id, $results);

} else {
    $tg->reply("Получено событие типа: " . ($type ?: 'неизвестный'));
}

Дополнительные возможности и их разбор

  • Вы можете менять названия переменных
php
$tg->initVars($chatID, $user, $message, $eventType);
  • Вы можете использовать не все переменные, а только несколько первых:
php
$tg->initVars($chat_id, $user_id, $text, $type);
  • Вы можете инициировать конкретную переменную по её названию:
php
$tg->initVars(type: $type);
  • Дополнительно возвращает update - массив с пришедшим событием
php
$update = $tg->initVars($chat_id, $user_id);

Опубликовано под лицензией MIT.