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

Как сделать обратный ответ , после нажатия на инлайн кнопку?

28.01.2023, 18:25. Показов 2336. Ответов 2

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from aiogram.utils.callback_data import CallbackData
 
import datetime
 
from config import TOKEN
import logging
# Объект бота
bot = Bot(token=TOKEN)
#Диспетчер — объект, занимающийся получением апдейтов от Telegram с последующим выбором хэндлера для обработки принятого апдейта.
dp = Dispatcher(bot)
 
# Включаем логирование
 
logging.basicConfig(level=logging.INFO)
botlogfile = open('INFO_log.log')
botlogfile = open('Eror_log.log')
logging.basicConfig(level=logging.INFO,filename="INFO_log.log",filemode="w")
logging.basicConfig(level=logging.ERROR,filename="Eror_log.log",filemode="w")
 
'''
@dp.message_handler()
async def loggin(message: types.Message):
    dtn = datetime.datetime.now()S
    botlogfile = open('TestBot.log', 'a')
    tr= print(dtn.strftime("%d-%m-%Y %H:%M"), 'Пользователь ' + message.from_user.first_name, message.from_user.id, 'написал следующее: ' + message.text, file=botlogfile)
    botlogfile.close()
    await message.reply(tr)
'''
#Хэндлер — асинхронная функция, которая получает от диспетчера/роутера очередной апдейт и обрабатывает его.
@dp.message_handler(commands=['start'])
@dp.callback_query_handler()
 
async def process_start_command(message: types.Message):
    
    kb = [ types.InlineKeyboardButton(text='Пополнить баланс',callback_data='Введите сумму на котрую  хотите пополнить баланс'),]
    keyboard = types.InlineKeyboardMarkup().add(*kb)
    await message.reply(f'Привет, {message.from_user.first_name}, \nЯ - бот для пополнения баланса.\nНажмите на кнопку, чтобы пополнить баланс. \nСнизу инлайн кнопка с текстом  Пополнить баланс',reply_markup=keyboard)
    #return bot.send_message(reply_markup=keyboard)
 
@dp.message_handler(commands=['admin'])
async def process_start_command(message: types.Message):
    kb = [ 
        [types.InlineKeyboardButton(text='Выгрузка пользователей с балансом',callback_data='спасибо')],
        [types.InlineKeyboardButton(text='Выгрузка логов',callback_data='спасибо')],
        [types.InlineKeyboardButton(text='Изменить баланс',callback_data='спасибо')],
        [types.InlineKeyboardButton(text='Заблокировать пользователя',callback_data='спасибо')]
         
        ]
    keyboard = types.InlineKeyboardMarkup(inline_keyboard=kb)
    await message.reply(f'Админка,', reply_markup=keyboard)
 
@dp.message_handler()
async def echo_message(msg: types.Message):
    await bot.send_message(msg.from_user.id, msg.text)
 
 
if __name__ == '__main__':
    executor.start_polling(dp)


Здравствуйте уважаемые форумчане,столкнулся с проблемкой небольшой, пишу бота , сделал инлайн кнопку , привязанную к сообщению ,там где команда /start .'пополнение баланса'.при нажатии на нее должен возвращаться callback ,должно возвращаться сообщение 'введите сумму на которую хотите пополнить баланс'.,но ничего не происходит.Как сделать обратный ответ , после нажатия на кнопку???
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2023, 18:25
Ответы с готовыми решениями:

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

Как редактировать сообщение после нажатия инлайн кнопки?
Здравствуйте! Нужно чтоб после нажатия инлайн кнопки бот не отправлял новое сообщение, а редактировал старое Не получается сделать ...

Как сделать элементы неактивными после нажатия на кнопку
Добрый день. Необходимо составить программу тест по истории. Проблема в том, что после нажатия на клавишу "Завершить" можно...

2
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
28.01.2023, 18:45
Цитата Сообщение от dublin87 Посмотреть сообщение
@dp.message_handler(commands=['start'])
@dp.callback_query_handler()

async def process_start_command(message: types.Message):
почему тут пробел между декораторами и функцией?
0
1 / 1 / 0
Регистрация: 16.10.2021
Сообщений: 74
29.01.2023, 19:54  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from aiogram.utils.callback_data import CallbackData
 
import datetime
 
from config import TOKEN
import logging
# Объект бота
bot = Bot(token=TOKEN)
#Диспетчер — объект, занимающийся получением апдейтов от Telegram с последующим выбором хэндлера для обработки принятого апдейта.
dp = Dispatcher(bot)
 
# Включаем логирование
 
logging.basicConfig(level=logging.INFO)
botlogfile = open('INFO_log.log')
botlogfile = open('Eror_log.log')
logging.basicConfig(level=logging.INFO,filename="INFO_log.log",filemode="w")
logging.basicConfig(level=logging.ERROR,filename="Eror_log.log",filemode="w")
 
'''
@dp.message_handler()
async def loggin(message: types.Message):
    dtn = datetime.datetime.now()S
    botlogfile = open('TestBot.log', 'a')
    tr= print(dtn.strftime("%d-%m-%Y %H:%M"), 'Пользователь ' + message.from_user.first_name, message.from_user.id, 'написал следующее: ' + message.text, file=botlogfile)
    botlogfile.close()
    await message.reply(tr)
'''
#Хэндлер — асинхронная функция, которая получает от диспетчера/роутера очередной апдейт и обрабатывает его.
@dp.message_handler(commands=['start'])
async def process_start_command(message: types.Message):
    
    kb = [ types.InlineKeyboardButton(text='Пополнить баланс',callback_data='press'),]
    keyboard = types.InlineKeyboardMarkup().add(*kb)
    await message.reply(f'Привет, {message.from_user.first_name}, \nЯ - бот для пополнения баланса.\nНажмите на кнопку, чтобы пополнить баланс. \nСнизу инлайн кнопка с текстом  Пополнить баланс',reply_markup=keyboard)
    #return bot.send_message(reply_markup=keyboard)
      #@dp.callback_query_handler(lambda c: c.data == 'main_window') — ожидает callback и принимает lambda-функцию для его фильтрации. Callback отправляется inline-кнопками. В примере мы ожидаем callback со значением 'main_window'
@dp.callback_query_handler(lambda c: c.data == 'press')
async def EnterSumm(callback_query_handler: types.CallbackQuery):
    await callback_query_handler.answer('Введите сумму , которую хотите вести!', True)
 
 
@dp.message_handler(commands=['admin'])
async def process_start_command(message: types.Message):
    kb = [ 
        [types.InlineKeyboardButton(text='Выгрузка пользователей с балансом',callback_data='спасибо')],
        [types.InlineKeyboardButton(text='Выгрузка логов',callback_data='спасибо')],
        [types.InlineKeyboardButton(text='Изменить баланс',callback_data='спасибо')],
        [types.InlineKeyboardButton(text='Заблокировать пользователя',callback_data='спасибо')]
         
        ]
 #ReplyKeyboardMarkup — объект, который создает клавиатуру.
    keyboard = types.InlineKeyboardMarkup(inline_keyboard=kb)
    await message.reply(f'Админка,', reply_markup=keyboard)
 
@dp.message_handler()
async def echo_message(msg: types.Message):
    await bot.send_message(msg.from_user.id, msg.text)
 
 
if __name__ == '__main__':
    executor.start_polling(dp)



так сделал, сообщение выскакивает , но почему то по центру экрана , а не как сообщение снизу.Есть ли возможность снизу сделать.?
Миниатюры
Как сделать обратный ответ , после нажатия на инлайн кнопку?  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2023, 19:54
Помогаю со студенческими работами здесь

Как сделать кнопку неактивной в течение 3 секунд после нажатия?
Вот есть такой код, как сделать так, чтобы кнопка была неактивной три секунды после нажатия? <div id="buttonMax"...

Как сделать так, чтобы таймер запускался после нажатия на кнопку?
Добрый день. Имеется таймер на форме. Как сделать так, чтобы таймер запускался после нажатия на кнопку "старт". ??? ...

После нажатия на кнопку TBitBtn сделать кнопку не действующей
Как после нажатия на кнопку bitbtn1 кнопка становилась не действушей

Как сделать чтобы после нажатия на кнопку значение top изменялось на 100?
<div class="cards-panel" style="top: 0px;"> мне нужно что бы после нажатия на кнопку значение top изменялось на 100, а после нажатия на...

Как сделать так, чтобы кнопка появлялась только после нажатия на другую кнопку
Всем привет. Возник вопрос. У меня есть сайт обмен визитами. И я хотел бы добавить такую функцию. Загружается сайт и выходит надпись Чтобы...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru