Задать вопрос
@Telax4As

Как устранить ошибку с клавиатурой телебота?

Ошибка:
A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: can't parse rep ly keyboard markup JSON object

Код:
profile = telebot.types.ReplyKeyboardMarkup(True)
farm = telebot.types.ReplyKeyboardMarkup(True)
click = telebot.types.ReplyKeyboardMarkup(True)
shop = telebot.types.ReplyKeyboardMarkup(True)
pick = telebot.types.ReplyKeyboardMarkup(True)
sell_pick1 = telebot.types.ReplyKeyboardMarkup(True)
sell_pick2 = telebot.types.ReplyKeyboardMarkup(True)
sell_pick3 = telebot.types.ReplyKeyboardMarkup(True)

menu.row('Профиль', 'Кликер Ферма')
menu.row('Магазин')
profile.row('Назад')
farm.row('Клик')
farm.row('Назад')
click.row('Клик')
click.row('Вернуться в Меню')
shop.row('Купить кирки')
shop.row('Вернуться в Меню')
pick.row('Каменная кирка')
pick.row('Железная кирка')
pick.row('Золотая кирка')
pick.row('Отмена')
sell_pick1.row('Купить Каменную кирку')
sell_pick1.row('Отмена')
sell_pick2.row('Купить Железную кирку')
sell_pick2.row('Отмена')
sell_pick3.row('Купить Золотую кирку')
sell_pick3.row('Отмена')

@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Бот работает!123')

try:
cur.execute("INSERT INTO server (id) VALUES (%s)", (message.chat.id,))
db.commit()
except:
pass

@bot.message_handler(content_types=['text'])
def simple(message):
cur.execute("SELECT balance FROM server WHERE id = %s", (message.chat.id,))
balance = cur.fetchone()[0]
cur.execute("SELECT pick FROM server WHERE id = %s", (message.chat.id,))
pick = cur.fetchone()[0]
msg = message.text
id = message.chat.id
if msg == 'Меню' or msg == 'Назад' or msg == 'Вернуться в Меню':
bot.send_message(id, 'Вы попали в Меню:', reply_markup=menu)
if msg == 'Профиль':
bot.send_message(id, 'Профиль:\nID = ' + str(id) + '\nБаланс = ' + str(balance) + '\nКирка = ' + str(pick), reply_markup=profile)
if msg == 'Кликер Ферма':
bot.send_message(id, 'Вы попали на Кликер Ферму', reply_markup=farm)
if msg == 'Клик' or msg == 'клик':
if pick == 'Деревянная':
balance += 1
cur.execute("UPDATE server SET balance = balance + 1 where id = %s", (message.chat.id,))
bot.send_message(id, 'Вы кликнули 1 раз и получили 1 монету!\nБаланс = ' + str(balance), reply_markup=click)
if pick == 'Каменная':
balance += 3
cur.execute("UPDATE server SET balance = balance + 3 where id = %s", (message.chat.id,))
bot.send_message(id, 'Вы кликнули 1 раз и получили 3 монеты!\nБаланс = ' + str(balance), reply_markup=click)
if pick == 'Железная':
balance += 10
cur.execute("UPDATE server SET balance = balance + 10 where id = %s", (message.chat.id,))
bot.send_message(id, 'Вы кликнули 1 раз и получили 10 монеты!\nБаланс = ' + str(balance), reply_markup=click)
if pick == 'Золотая':
balance += 50
cur.execute("UPDATE server SET balance = balance + 50 where id = %s", (message.chat.id,))
bot.send_message(id, 'Вы кликнули 1 раз и получили 50 монеты!\nБаланс = ' + str(balance), reply_markup=click)
if msg == 'Магазин' or msg == 'Отмена':
bot.send_message(id, 'Вы попали в Магазин:\nКирки', reply_markup=shop)
if msg == 'Купить кирки':
bot.send_message(id, 'Выберите интересующую кирку:\n\nКаменная кирка(100)\nЖелезная кирка(500)\nЗолотая кирка(2500)', reply_markup=pick)
if msg == 'Каменная кирка':
bot.send_message(id, 'Вы собираетесь купить Каменную кирку?', reply_markup=sell_pick1)
if msg == 'Железная кирка':
bot.send_message(id, 'Вы собираетесь купить Железную кирку?', reply_markup=sell_pick2)
if msg == 'Золотая кирка':
bot.send_message(id, 'Вы собираетесь купить Золотая кирку?', reply_markup=sell_pick3)
if msg == 'Купить Каменную кирку':
if balance >= 100:
balance -= 100
cur.execute("UPDATE server SET balance = balance - 100 where id = %s", (message.chat.id,))
pick = 'Каменная'
bot.send_message(id, 'Вы приобрели Каменную кирку!\nБаланс = ' + str(balance))
else:
bot.send_message(id, 'Недостаточно средств для покупки')
if msg == 'Купить Железную кирку':
if balance >= 500:
balance -= 500
pick = 'Железная'
bot.send_message(id, 'Вы приобрели Железную кирку!\nБаланс = ' + str(balance))
else:
bot.send_message(id, 'Недостаточно средств для покупки')
if msg == 'Купить Золотую кирку':
if balance >= 2500:
balance -= 2500
pick = 'Золотая'
bot.send_message(id, 'Вы приобрели Золотую кирку!\nБаланс = ' + str(balance))
else:
bot.send_message(id, 'Недостаточно средств для покупки')
db.commit

bot.polling(non_stop=True)>

Ошибка возникает когда бот принимает сообщение "Купить кирки"
  • Вопрос задан
  • 35 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы