Inline button telegram-bot-api

как при нажатие кнопок добавлять записи в MYsql например кнопка LIKE при нажатие должна добавляться +1 к к существующему записи


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

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

Если вы используете PyTelegramBotAPI то для инлайн кнопок все уже реализовано.
Для начала сделаем разметку нашей будущей клавиатуры

keyboard  = telebot.types.InlineKeyboardMarkup()

Далее создадим кнопку и добавим ее к клавиатуре

button = telebot.types.InlineKeyboardButton('Like', callback_data='like')
keyboard.row(button)

А дальше мы можем ловить нажатие на кнопку благодаря callback_data

@bot.callback_query_handler(func=lambda call: True)
def callback_handler(call):
    num = 0
    if call.data == 'like':
        ...

А дальше все ещё проще. Воспользуемся методом edit_message_text и изменим клавиатуру

num += 1

keyboard  = telebot.types.InlineKeyboardMarkup()
button = telebot.types.InlineKeyboardButton(f'Like {num}', callback_data='like')
keyboard.row(button)

bot.edit_message_text(message_id=call.message.message_id, text='text', chat_id=call.from_user.id, reply_markup=keyboard)
   

Главное не забудьте проверять нажатия от пользователей, чтобы это не превратилось в кликер

→ Ссылка