Как правильно обработать инлайн кнопки?

Енот
Новичек
Регистрация
9 Янв 2019
Сообщения
99
#1
Всем привет. Создал в боте инлайн кнопки (InlineKeyboardMarkup)
Обрабатываю так:
Код:
$bot->on(function($update) use ($bot)
{
    $callback = $update->getCallbackQuery();
    $data = $callback->getData();
    $message = $callback->getMessage();
    $chat_id = $message->getChat()->getId();

    if($data == "...")
    {
        ...
    }
    ...
}, function($update)
{
    $callback = $update->getCallbackQuery();
    if(is_null($callback) || !strlen($callback->getData())) return false;
    return true;
});
Но почему-то getCallbackQuery ничего не возвращает. Как можно решить эту проблему? Может кто то сталикивался с этим. Облазил весь рунет, буржунет, ничего не помогает. Точнее, решений почти нет.
PHP Version 7.0.33-0+deb9u1
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
2,036
#2
Так пробовали?
PHP:
$bot->on(function($update) use ($bot){
    $callback = $update->getCallbackQuery();
    $bot->answerCallbackQuery($callback->getId());
    // Данные в $callback->getData()
}, function($update){
    return true;
});
 
Енот
Новичек
Регистрация
9 Янв 2019
Сообщения
99
#3
Так пробовали?
PHP:
$bot->on(function($update) use ($bot){
    $callback = $update->getCallbackQuery();
    $bot->answerCallbackQuery($callback->getId());
    // Данные в $callback->getData()
}, function($update){
    return true;
});
У меня почти так же, только $bot->answerCallbackQuery($callback->getId()); находится внутри проверки. Сделал в точности как у вас, тоже не сработало. Главное, в интернете во многих примерах так используют. А тут уже не работает.
 
Енот
Новичек
Регистрация
9 Янв 2019
Сообщения
99
#4
Решил проблему, поднял этот метод on выше другого. И внутри function добавил проверку. Теперь работает.