@lucsieus
начинающий самурай

Как обрабатывать callback от телеграмм бота по условию?

Здравствуйте, умные люди. Прошу вас помочь.

Логика бота такая с битрикс24 отправляется запрос к скрипту бота (юзал эту библиотеку), бот принимает данные с битрикс24 через GET.
Затем отправляет параллельно с данными, кнопки в группу - в таком виде. По логике когда юзер нажимает кнопку должен меняться текст в поле стадия заказа.

Вот в этом моменте зашел в тупик, вопрос такой: как обрабатывать входящий callback по условию. Например когда я сейчас нажимаю на кнопку код полностью обрабатывается, и сообщения падает в группу.

Как сделать так чтобы, когда юзер нажимал на кнопку текст менялся и сообщение не падали (и чтобы они падали только в том случае если идет запрос с битрикс24). Примерно по логике понимаю, но не хватает знании (а времени мало). Можете помочь по коду...

<?php
//Подключаем библиотеку
include('vendor/autoload.php');
use Telegram\Bot\Api;
//Указываем токен телеграм бота
$telegram = new Api('******');
$result = $telegram->getWebhookUpdates();
$result = json_decode($result, True);
//получаем данные с callback_query
$callback_data = $result['callback_query']['data'];
$callback_id = $result['callback_query']['message']['chat']['id'];
$callback_message_id = $result['callback_query']['message']['message_id'];
//собираем инлайн кнопки в объект
$text = 'Отправлен в группу';
$keyboard = json_encode([
    "inline_keyboard" => [
        [
            [
                "text" => "Готовится",
                "callback_data" => "Готовится"
            ],
            [
                "text" => "Отправлен",
                "callback_data" => "Отправлен"
            ],
            [
                "text" => "Отменен",
                "callback_data" => "Отменен"
            ]
        ]
    ]
]);

$telegram->sendMessage([
    'chat_id' => -*****,
    'text' => 'Стадия заказа: '.$text,
    'reply_markup' => $keyboard
]);


if ($callback_data = true){
    $telegram->editMessageText([
        'chat_id' => -*******,
        'message_id' => $callback_message_id,
        'text' => 'Стадия заказа: '.$callback_data,
        'reply_markup' => $keyboard
    ]);}
  • Вопрос задан
  • 565 просмотров
Решения вопроса 1
@lucsieus Автор вопроса
начинающий самурай
if (!empty($_GET["id"])) {
$telegram->sendMessage([
'chat_id' => -507888261,
'text' => $txt . "\nСтадия заказа: " . $text,
'reply_markup' => $keyboard,
'parse_mode' => 'html']);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы