TelegramBot / Api

Native PHP Wrapper for Telegram BOT API
MIT License
1.06k stars 324 forks source link

getReplyMarkup() doesn't return actual reply markup #323

Open artemijdeleto opened 3 years ago

artemijdeleto commented 3 years ago

Problem

Getting null when trying to get reply markup of the message using getReplyMarkup

Expected result

Getting instance of InlineKeyboardMarkup, as documented in the source code

Steps to reproduce

  1. Send message with InlineKeyboardMarkup passed to replyMarkup parameter, providing text and callback_data
  2. Open any Telegram client application and click on created button
  3. Capture callback event using $client->callbackQuery()
  4. Try to get reply markup of the message using $query->getMessage()->getReplyMarkup()

The result of the following steps will be null. I printed out the raw body and definitely sure that JSON that sent back to the server contains reply_markup field

dazeron commented 2 years ago

I have the same problem. But I use $messageData = $bot->sendMessage(..., $inline_keyboard); $messageData->getReplyMarkup(); // returns NULL I don't know, what to do...

dazeron commented 2 years ago

I've tried to check Types/Message.php and I added to static protected $map = [] new element 'reply_markup' => InlineKeyboardMarkup::class (I saw, that there are all the key=>value pairs from telegram api docs, but 'reply_markup' are not), but this just broke the bot :( I'm sure some developers stuck this problem too.

bernard-ng commented 1 year ago

385