Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с бибилотекой Telebot

Антон Федянин Ученик (168), открыт 2 дня назад
Почему данный код не делает кнопки? ( я знаю что функцию на апгрейд я ещё не начал делать)
import telebot
from telebot import types

bot = telebot.TeleBot('7161828165:AAGd3oNqVVUee2_nwK-Mvnghcw8irynaYso')

@bot.message_handler(commands=['start'])
def message(message):
markup = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True)
bot.send_message(message.chat.id, 'Напишите сообщение /клик что бы получить коины. Сейчас у вас есть * коинов. Что бы купить апгрейды напишите /апгрейды')
btn1 = types.KeyboardButton('/click')
btn2 = types.KeyboardButton('/upgrades')
markup.add(btn1, btn2)
@bot.message_handler(commands=['клик'])
def message(message):
markup = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True)
bot.send_message(message.chat.id, 'Напишите сообщение клик что-бы получить коины. Сейчас у вас есть * коинов')
btn1 = types.KeyboardButton('/click')
btn2 = types.KeyboardButton('/upgrades')
markup.add(btn1, btn2)
bot.polling()
1 ответ
kaneki ghoul sss Мудрец (12058) 2 дня назад
Ты создаёшь клавиатуру (markup), но не отправляешь ее вместе с сообщением. Чтобы исправить это, добавь параметр reply_markup при отправке сообщения:
 bot.send_message(message.chat.id, 'Твоё сообщение', reply_markup=markup)  
Обработчик для команды '/клик' находится внутри обработчика '/start'. Это неправильно. Каждый обработчик должен быть отдельной функцией. Вот как должна выглядеть структура:
 @bot.message_handler(commands=['start']) 
def start(message):
# Код для команды start

@bot.message_handler(commands=['клик'])
def click(message):
# Код для команды клик
Ты создал кнопки с английскими названиями ('/click', '/upgrades'), но обрабатываешь русские команды ('/клик', '/апгрейды'). Убедись, что названия команд совпадают:
 btn1 = types.KeyboardButton('/клик') 
btn2 = types.KeyboardButton('/апгрейды')
У тебя нет обработчика для команды '/апгрейды'. Добавь его:
 @bot.message_handler(commands=['апгрейды']) 
def upgrades(message):
# Код для апгрейдов
Похожие вопросы