Как получить сообщение пользователя, после нажатия на кнопку aiogram
Мой бот занимается рассылкой, и я хочу, чтобы после нажатия на кнопку, например "Ввести сообщение", отправить сообщение в бота и получить его на стороне сервера. Пытался получить ответ через Google, ChatGPT, но получил лишь подсказку использовать message.text, однако в таком случае текст будет обрабатываться всегда, а мне надо получить его только после нажатия на кнопку. Как это сделать?
Ответы (1 шт):
если вы хотите получать введённое сообщение после нажатия на кнопку, то нужно у кнопки создать определённую колбэк дату, а потом её обработать, схематический пример с библиотекой 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 и есть сообщение от человека, котоорое потом можете отправлять на сервер