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

При нажатии назад пишет ошибку что делать?

Пишу код для магазина игровой валюты добавил кнопку назад и выскакивает вот такая ошибка:
ApiTelegramException('A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: message to delete not found')


Что делать?
Вот весь код:
import telebot
from telebot import types
import config

bot = telebot.TeleBot(config.bottesttoken)

@bot.message_handler(commands=['start'])
def start_message(message):
  print("Пользователь нажал старт")
  markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
  store = types.KeyboardButton("Магазин")
  markup.add(store)
  bot.send_message(message.chat.id,"❤Привет пользовател спасибо что выбрал наш магазин❤\n⬇Выбери один из пунктов меню чтобы начать⬇", reply_markup=markup)

@bot.message_handler(content_types=['text'])
def func(message):
    if(message.text == "Магазин"):
      markup = types.InlineKeyboardMarkup()
      standoff = telebot.types.InlineKeyboardButton(text="Standoff 2", callback_data='stand')
      markup.add(standoff)
      global vibor
      vibor = bot.send_message(message.chat.id, text="Выбери ниже игру в которой хочешь купить валюту", reply_markup=markup)

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    try:
        if call.message:
            if call.data == "stand":
                bot.delete_message(call.message.chat.id, vibor.id)
                markup = types.InlineKeyboardMarkup()
                calcgold = types.InlineKeyboardButton(text="Калькулятор голды", callback_data="calcgolda")
                markup.add(calcgold)
                global standvibor
                standvibor = bot.send_message(call.message.chat.id, "Выбери действие:", reply_markup=markup)
            if call.data == "calcgolda":
                bot.delete_message(call.message.chat.id, standvibor.id)
                markup = types.InlineKeyboardMarkup()
                calcrubgold = types.InlineKeyboardButton(text="Посчитать рубли в голде", callback_data="calcrubgolda")
                calcgoldrub = types.InlineKeyboardButton(text="Посчитать голду в рублях", callback_data="calcgoldarub")
                markup.add(calcrubgold, calcgoldrub)
                global calcsstand
                calcsstand = bot.send_message(call.message.chat.id, "Выбери калькулятор:", reply_markup=markup)
            if call.data == "calcrubgolda":
                bot.delete_message(call.message.chat.id, calcsstand.id)
                markup = types.InlineKeyboardMarkup()
                back = types.InlineKeyboardButton(text="Назад", callback_data="stand2")
                markup.add(back)
                bot.send_message(call.message.chat.id, "В разработке", reply_markup=markup)
            if call.data == "calcgoldarub":
                bot.delete_message(call.message.chat.id, calcsstand.id)
                markup = types.InlineKeyboardMarkup()
                back = types.InlineKeyboardButton(text="Назад", callback_data="stand2")
                markup.add(back)
                bot.send_message(call.message.chat.id, "В разработке", reply_markup=markup)
    except Exception as e:
        print(repr(e))


bot.polling(none_stop=True)
  • Вопрос задан
  • 74 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
febday
@febday
1. В прошлой теме я вам уже ответил
Зачем вы удаляете сообщение, если можете его редактировать .edit_message

2. Вы отправляете переменную, в которой есть объект сообщения, но эта переменная локальная, она не может попасть волшебным образом из одной функции в другую (вообще забудьте про это и делайте через редактирование)

3. Для чего проверять наличие объекта сообщения? Что за магия, когда при нажатие на кнопку сообщения не существует?
Ответ написан
Ваш ответ на вопрос

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

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