Как переслать сообщение вместе с клавиатурой (кнопкой) в Telegram

Я пишу бота на python Aiogram. У меня есть сообщение которое отправляет бот и к которому приделана inline клавиатура. Когда пытаюсь пересылать это сообщение, пересылается только само сообщение, но не клавиатура. Я пытался пересылать сообщение через copy_message() и forward_message().

Я знаю что у функции copy_message() есть атрибут reply_markup через который можно добавить клавиатуру к сообщению. Но я не знаю как её скопировать из другого сообщения. Важно что я должен её скопировать именно из сообщения а не взять её в коде.

Итого: мне нужно либо скопировать клавиатуру из сообщения, либо переслать клавиатуру вместе с сообщением.


Ответы (1 шт):

Автор решения: MyZik

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

from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup

...

reply_markup = InlineKeyboardMarkup(InlineKeyboardButton(text="Click me", callback_data="test_handler"))
... 

await bot.copy_message(chat_id=123456789, from_chat_id=987654321, message_id=123, reply_markup=reply_markup)

Клавиатуру и значения измените на свои :)

→ Ссылка