Uncategorized

message to edit not found (python telebot)


Всем привет, возникла проблема в коде инлайн-кнопки + в телеграм боте, которая регулирует количество товара, которое выбрал пользователь.
По задумке, при каждом нажатии на кнопку + сообщение должно каждый раз меняться в строке с заказом на 0,25 кг, если кнопка -, то уменьшаться

global amount, last_message_id, total
        if callback.data=='+':
            amount+=0.25
            price_per_kg_ = products[choice]['price_per_kg']    
            max_ = products[choice]['max']                         
            min_ = products[choice]['min']                          
            total = amount*price_per_kg_
            kb = types.InlineKeyboardMarkup(row_width=2)
            item1 = types.InlineKeyboardButton(text="+", callback_data="+")
            item2 = types.InlineKeyboardButton(text="-", callback_data="-") 
            item3 = types.InlineKeyboardButton(text="🔙 Back to menu", callback_data="back2")
            item4 = types.InlineKeyboardButton(text="✅ В корзину", callback_data="confirm_amount")
            kb.add(item1, item2, item3, item4)
            if amount <= max_ and amount >= min_:
                global text
                text="⭐ Продукт: " + choice + ' \n📊 Заказано кг: ' + str(amount) + ' кг' + ' \n💵 Стоимость: ' + str(total)
            else:
                text="❗Количество товара не может превышать " + str(max_) + ' кг и не может быть ниже ' + str(min_) + ' кг!'
            if last_message_id:
                bot.edit_message_text(chat_id=callback.message.chat.id,message_id=last_message_id,text=text, reply_markup=kb)  
            else:
                sent_message=bot.edit_message_text(chat_id=callback.message.chat.id,message_id=callback.message.id, text=text, reply_markup=kb)
                last_message_id=sent_message.message_id

Почему в строке

bot.edit_message_text(chat_id=callback.message.chat.id,message_id=last_message_id,text=text, reply_markup=kb), которая в блоке

If last_message_id:

вылезает ошибка

  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telebot/__init__.py", line 1074, in __threaded_polling
    self.worker_pool.raise_exceptions()
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telebot/util.py", line 147, in raise_exceptions
    raise self.exception_info
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telebot/util.py", line 90, in run
    task(*args, **kwargs)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telebot/__init__.py", line 6801, in _run_middlewares_and_handler
    result = handler['function'](message)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 403, in bot_message
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telebot/__init__.py", line 3839, in edit_message_text
    result = apihelper.edit_message_text(self.token, text, chat_id, message_id, inline_message_id, parse_mode,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telebot/apihelper.py", line 1327, in edit_message_text
    return _make_request(token, method_url, params=payload, method='post')
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telebot/apihelper.py", line 162, in _make_request
    json_result = _check_result(method_name, result)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telebot/apihelper.py", line 189, in _check_result
    raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: message to edit not found"

Как исправить?



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *