Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 22.05.2021
Сообщений: 10

Aiogram - Как получить сообщение пользователя, введённое после нажатия на кнопку?

24.05.2021, 19:45. Показов 13570. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в чат попадает сообщение от бота с 2 кнопками - ответить и отклонить.
Нужно сделать так, чтобы при нажатии на кнопку ответить бот запрашивал ответ на это сообщение. При нажатии на отклонить - причину.

Клавиатура для выбора действия с заявкой:
Код:

Python
1
2
3
4
support_kb =InlineKeyboardMarkup()
answer = InlineKeyboardButton('Ответить', callback_data='ans')
cancel = InlineKeyboardButton('Отклонить', callback_data='decl')
support_kb.add(answer, cancel)
Отправка сообщения в чат:
Код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
await bot.send_message(
        support_chat_id,
 
        f"Поступила заявка от @{message.from_user.username}\n\n"
        f"Имя пользователя: <b>{data['name']}</b>\n" +
        f"Тема: <b>{data['theme']}</b>\n" +
        f"Код ошибки: <b>{data['errcode']}</b>\n" +
        f"Текст: <b>{data['msg']}</b>",
 
        parse_mode=ParseMode.HTML,   
        reply_markup=support_kb
 
    )
Ответить на заявку и отклонить ее:
Код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Ответить
@dp.callback_query_handler(text_contains="ans")
async def confirm(callback_query: types.CallbackQuery):
 
    src_msg = callback_query.message.text
 
    await bot.edit_message_text(
        src_msg + f"\n\nЗаявку взял(-а) @{callback_query.from_user.username}",
        support_chat_id, callback_query.message.message_id
        )
 
# Отклонить
@dp.callback_query_handler(text_contains="decl")
async def decline(callback_query: types.CallbackQuery):
 
    src_msg = callback_query.message.text
 
    await bot.edit_message_text(
        src_msg + f"\n\nЗаявку отклонил(-а) @{callback_query.from_user.username}",
        support_chat_id, callback_query.message.message_id
        )
Пробовал сделать вот так, но это не сработало
Код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@dp.callback_query_handler(text_contains="ans")
async def confirm(callback_query: types.CallbackQuery, state: FSMContext):
 
    src_msg = callback_query.message.text
 
    await bot.edit_message_text(
        src_msg + f"\n\nЗаявку взял(-а) @{callback_query.from_user.username}",
        support_chat_id, callback_query.message.message_id
        )
 
    await ansForm.answer.set()
 
@dp.message_handler(state=ansForm.answer)
async def get_ans(message: types.Message, state: FSMContext):
    await bot.send_message(support_chat_id, "Ожидаю ответ...")
Ну, так вот, что нужно для того, чтобы при нажатии на кнопки ответь и отклонить запрашивались текст ответа или причина отклонения?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2021, 19:45
Ответы с готовыми решениями:

Как получить ответ на web-странице после нажатия на кнопку через Grab?
Добрый день. Захожу на почту и отправляю себе на другое мыло тестовое сообщение. from grab import Grab def sim(): g =...

Проверка авторизации пользователя после нажатия на кнопку на Wordpress-сайте
Не могу решить задачу из-за отсутствия знаний, задача в следующем: Нужно, чтобы по нажатию кнопки на главной странице Wordpress-сайта...

Получить измененное значение строки после нажатия на кнопку
Есть TextBlock1.Text, который выводит год. При нажатии на кнопку, год увеличивается на 1. Как мне присвоить измененное значение второму...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2021, 19:45
Помогаю со студенческими работами здесь

Как при нажатии на кнопку создать новую кнопку (чтоб после нажатия на кнопку1 ты мог нажать на кнопку2 и сократить число
&lt;p&gt; &lt;input id=&quot;kvcor_nabor&quot; align=&quot;right&quot; size=9 onclick=&quot;kvcorsolve_qe()&quot; type=&quot;button&quot; value=&quot;Решить квадратное уравнение.&quot;...

очистка формы после отправки. КАК? То есть после нажатия на кнопку или что? Как реализовать?
// если форма без ошибок if(empty($errors)){ // собираем данные из формы $message = &quot;Имя пользователя: &quot; . $_POST ....

Нужно, чтобы через 1 секунду после нажатия на кнопку выскакивало сообщение
Здравствуйте! Никак не могу разобраться с работой таймера. Ну вот смотрите: Нужно что бы через 1 сек. после нажатия на кнопку...

Как удалить кнопку после её нажатия?
Работаю в clr .NET c++ Нужно что бы после нажатия кнопки она удалилась (убрать видимость не подойдет) private: System::Void...

Как скрыть кнопку после нажатия на нее?
Вот кнопка: &lt;input type=button class=&quot;buttons&quot; value=&quot;Запуск&quot; OnClick=&quot;document.getElementById('action').value='cd...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru