Как ответить пользователю после нажатия на кнопку?

В общем вся суть вопроса. Имеется код:
$chat_id = $this->getMessage()->getChat()->getId();
//объявляю клавиатуру
        $inline_keyboard = new InlineKeyboard([
            ['text' => 'Помощь','callback_data' => '/help'],
            ['text' => 'Информация', 'callback_data' => '!info'],
        ], [
            ['text' => 'Начало', 'callback_data' => '!start'],
        ]);

        $data = [
            'chat_id'      => $chat_id,
            'text'         => 'Выберите одну из предложенных команд',
            'reply_markup' => $inline_keyboard,
        ];
//посылаю клавиатуру пользователю
        return Request::sendMessage($data);

и по идее обработчик куда должен посылаться запрос:
protected $name = 'help callback query';
    /**
     * @var string
     */
    protected $description = 'Reply to callback query';
    /**
     * @var string
     */
    protected $version = '1.1.0';
    /**
     * Command execute method
     *
     * @return \Longman\TelegramBot\Entities\ServerResponse
     * @throws \Longman\TelegramBot\Exception\TelegramException
     */
    public function execute()
    {
        $callback_query    = $this->getCallbackQuery();
//заполняю данные для ответа пользователю
        $data = [
            'chat_id'      => $callback_query->getMessage()->getChat()->getId(),
            'text'         => '123',
        ];
//отправляю
        return Request::sendMessage($data);

использую библиотеку: php-telegram-bot
и не могу понять, как сказать боту что все callback-query должны идти на infoCallbackCommand.php?
ибо в логах ответ от telegram.api приходит адекватный и со всеми данными.
{"update_id":397555211, "message":{"message_id":1033,"from":{"id":431928587,"first_name":"\u0412\u0438\u0442\u0430\u043b\u0438\u0439","last_name":"\u0425\u0432\u0430\u043d","language_code":"ru-RU"},"chat":{"id":431928587,"first_name":"\u0412\u0438\u0442\u0430\u043b\u0438\u0439","last_name":"\u0425\u0432\u0430\u043d","type":"private"},"date":1502784280,"text":"\u043f\u0440\u0438\u0432\u0435\u0442"}}
  • Вопрос задан
  • 2187 просмотров
Решения вопроса 1
@xRites Автор вопроса
В общем решение для php-telegram-bot
в файле hook.php необходимо в секции try{} добавить:
CallbackqueryCommand::addCallbackHandler(function (CallbackQuery $query) {
    $data = $query->getData(();
    switch($data){
         case "@some_callback_button":
                    someFunctionOrMethod($query);
         break;
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Ваш ответ на вопрос

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

Похожие вопросы