@sXfTeR

Как реализовать счетчик нажатий на кнопку в телеграм боте?

Надо сделать счетчик нажатий на keyboard кнопку, тоесть.. Допустим есть кнопка "пробный тест нажатия" юзер нажимает и бот просить написать ему что-то, юзер написал бот отвечает "Ура, у вас получилось!" и когда юзер нажимает повторный раз на кнопку, то бот отвечает "Попытка нажатия исчерпана" то есть надо задать параметр боту чтобы у юзера была только одна попытка нажать кнопку.. Подскажите, пожалуйста.. Заранее Спасибо!
  • Вопрос задан
  • 798 просмотров
Пригласить эксперта
Ответы на вопрос 1
@twistfire92
Python backend developer
Если это бот в группе, то вам нужна база данных, чтобы записывать туда кто нажал на кнопку. При каждом нажатии лезть в базу и проверять есть ли соответствующая запись с нужным пользователем для нужной кнопки.

Если с ботом идет личное общение, то проще всего в callback_data записать что-то типа "<info>|1", где <info> - это то, что вы обычно закидываете в эту кнопку, 1 - это флаг того, что кнопка не была нажата.

В коде это уже обыгрывается чуть иначе. Вы не указали какой библиотекой пользуетесь. Вы должны описать хендлер, который будет отлавливать вашу кнопку. И если раньше это было call.data == "<info>", то теперь это должно быть что-то типа call.data.startswith("<info>") или call.data.split("|")[0] == "<info>"

Далее вам надо вытащить то, что лежало за | в callback_data и если там была 1, то разрешать нажимать на кнопку
if int(call.data.split("|")[1]):
    # Тут уже просто редактируем клавиатуру, но в callback_data вставляем 0 вместо 1
else:
    # Выводим сообщение о том, то кнопку уже нажимали.


Подобным образом можно делать счетчик нажатий на кнопку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы