Как получить сообщение пользователя, после нажатия на кнопку aiogram

Мой бот занимается рассылкой, и я хочу, чтобы после нажатия на кнопку, например "Ввести сообщение", отправить сообщение в бота и получить его на стороне сервера. Пытался получить ответ через Google, ChatGPT, но получил лишь подсказку использовать message.text, однако в таком случае текст будет обрабатываться всегда, а мне надо получить его только после нажатия на кнопку. Как это сделать?


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

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

если вы хотите получать введённое сообщение после нажатия на кнопку, то нужно у кнопки создать определённую колбэк дату, а потом её обработать, схематический пример с библиотекой telebot, на aiogram почти тоже самое

#сообщение с кнопкой от бота
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('ввести сообщение', callback_data='new_message'))
bot.send_message(message.chat.id, 'сообщение', reply_markup=markup)

#обработчик нажатия
@bot.callback_query_handler(func=lambda callback: True)
def callback_handler(callback):
    if callback.data == 'new_message':
        bot.send_message(callback.message.chat.id, 'введите сообщение')
        need_message = callback.message.text

need_message и есть сообщение от человека, котоорое потом можете отправлять на сервер

→ Ссылка