Skip to content

Bot.edit_message_text accepts any ReplyMarkup, while the Telegram Bot API only accepts InlineKeyboardMarkup #1659

@pguenth

Description

@pguenth

When using bot.edit_message_text, I tried sending a ReplyKeyboard:

context.bot.edit_message_text("Login successful", chat_id = update.effective_chat.id, message_id = msg.message_id, reply_markup = gen_stdkeyboard())

where gen_stdkeyboard() returns a ReplyKeyboardMarkup object.

Executing raised following error:

  File "tg.py", line 253, in check_registered
    context.bot.edit_message_text("Login successful", chat_id = update.effective_chat.id, message_id = msg.message_id, reply_markup = gen_stdkeyboard())
  File "/usr/lib/python3.8/site-packages/telegram/bot.py", line 66, in decorator
    result = func(self, *args, **kwargs)
  File "/usr/lib/python3.8/site-packages/telegram/bot.py", line 1750, in edit_message_text
    return self._message(url, data, timeout=timeout, reply_markup=reply_markup, **kwargs)
  File "/usr/lib/python3.8/site-packages/telegram/bot.py", line 123, in _message
    result = self._request.post(url, data, timeout=timeout)
  File "/usr/lib/python3.8/site-packages/telegram/utils/request.py", line 323, in post
    result = self._request_wrapper('POST', url,
  File "/usr/lib/python3.8/site-packages/telegram/utils/request.py", line 237, in _request_wrapper
    raise BadRequest(message)
telegram.error.BadRequest: Inline keyboard expected

I think it is an inconsistency of this module, correct me if I am wrong.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions