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

answers

Методы для быстрой отправки ответов на callback-запросы и inline-запросы

answerCallbackQuery

Метод отправляет ответ Телеграму на callback-запрос. Поддерживает автоматическое получение ID запроса из контекста.

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

#НазваниеТипОписание
1queryIdOrParamsstring|array|nullЕсли строка: ID callback-запроса.
Если массив: параметры ответа (например, ['text' => 'ok']), а ID берется из контекста.
2paramsarrayДополнительные параметры (используется только если первым аргументом передан ID).

Возвращает

array - массив с ответом от Telegram

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

Вариант 1: Автоматический ID (Рекомендуемый)

php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use ZenithGram\ZenithGram\ZG;
use ZenithGram\ZenithGram\Bot;

$tg = ZG::create(BOT_TOKEN);
$bot = new Bot($tg);

$bot->onCallback('click')->func(function(ZG $tg) {
    // ID берется автоматически из входящего обновления
    $tg->answerCallbackQuery(['text' => 'Вы нажали на кнопку', 'show_alert' => true]);
});

$bot->run();

Вариант 2: Явное указание ID

php
$bot->onCallback('click')->func(function(ZG $tg) {
    $query_id = $tg->getQueryId();
    $tg->answerCallbackQuery($query_id, ['text' => 'Текст уведомления']);
});

Вариант 3: Пустой вызов

php
$bot->onCallback('click')->func(function(ZG $tg) {
    $tg->answerCallbackQuery();
});

answerInlineQuery

Метод отправляет ответ Телеграму на inline-запрос. Поддерживает автоматическое получение ID запроса из контекста.

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

#НазваниеТипОписание
1queryIdOrResultsstring|arrayЕсли строка: ID inline-запроса.
Если массив: массив результатов (results), а ID берется из контекста.
2resultsOrParamsarrayЕсли 1-й аргумент ID: массив результатов (results).
Если 1-й аргумент результаты: массив доп. параметров (extra).
3extraarrayДоп. параметры (используется только если первым аргументом передан ID).

Возвращает

array - массив с ответом от Telegram

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

Вариант 1: Автоматический ID (Рекомендуемый)

php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use ZenithGram\ZenithGram\ZG;
use ZenithGram\ZenithGram\Bot;

$tg = ZG::create(BOT_TOKEN);
$bot = new Bot($tg);

// Предполагаем, что у нас есть $results
$bot->onInline()->func(function(ZG $tg) {
    $result = [
        $tg->inline()->title('Пример')->text('Привет!')->create()
    ];

    // Передаем результаты первым аргументом. 
    // ID подставится сам. Вторым аргументом можно передать параметры (например, cache_time)
    $tg->answerInlineQuery($result, ['cache_time' => 300]);
});

$bot->run();

Вариант 2: Явное указание ID

php
$bot->onInline()->func(function(ZG $tg) {
    $result = [
        $tg->inline()->title('Пример')->text('Привет!')->create()
    ];
    
    $query_id = $tg->getQueryId();

    $tg->answerInlineQuery(
        $query_id, 
        $result, 
        ['is_personal' => true] // extra params
    );
});

Вариант 3: Только result

php
$bot->onInline()->func(function(ZG $tg) {
    $result = [
        $tg->inline()->title('Пример')->text('Привет!')->create(),
    ];

    $tg->answerInlineQuery($result);
});

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