Top.Mail.Ru
Ответы

Ошибка в роботе с телеграмм ботом

Я написал код для телеграм-бота, и в нем есть участок, где при нажатии на кнопку удаляется сообщение и отправляется другое. При разработке этого телеграм-бота на одном токене все работало отлично. Но когда я загрузил телеграм-бота на хостинг и решил внести изменения, чтобы затем протестировать новые функции, я создал другого телеграм-бота, на котором мог бы тестировать новые функции перед деплоем на сервер. Однако, когда я даже не успел что-то изменить(изменил только токен старого бота на новый с которого хотел проводить тести) и решил запустить бота, чтобы проверить, что все работает правильно, то все работало как надо, за исключением места, где удалялось сообщение. Еще один факт: место, где удаляется сообщение, - это одна команда, но есть и другая для оплаты доната, и она, как ни странно, работает нормально, в отличие от той, которая сломана.

Вот примери кода:
Первая работает, а вторая вызывает ошибку.

123456789
 # Эта функция срабатывает, когда пользователь нажимает на кнопку пожертвования. Она устанавливает состояние 'Donate.price' и просит пользователя ввести сумму пожертвования.
async def processing_donate(call: CallbackQuery, state: FSMContext, bot: Bot):
    user_lang = call.from_user.language_code
    data = await command_donate(user_lang)
    text = data[3]
    await state.set_state(Donate.price)
    await bot.delete_message(call.message.chat.id, call.message.message_id)
    await state.update_data(currency_on_invoice_message = call.data)
    await call.message.answer(text) 
12345678910
 # Обработчик кнопки. Удаляет предыдущее сообщение и отправляет новое с выбором Brawl Stars ID. 
async def batton(call: CallbackQuery): 
    await bot.delete_message(call.message.chat.id, call.message.message_id) 
    from battons.battons import brawl_stars_name 
    user_id = call.from_user.id 
    markup = await brawl_stars_name(user_id) 
    user_lang = call.from_user.language_code 
    data = await command_brawl_stars(user_lang) 
    text = data[4] 
    await call.message.answer(text, reply_markup = markup) 
По дате
По рейтингу
Аватар пользователя
Гений

где параметр bot во второй процедуре?

Аватар пользователя
Ученик

Это функции которые я вынес в другие файли и регистрирую в файле main.py вот строка кода в файле main.py

1
 bot = Bot(token = os.getenv("TOKEN_TEST")) 

Но зачем она вам так нужна не знаю.

Аватар пользователя
Ученик

V̲i̲s̲t̲a̲s̲t̲e̲r̲ Боже, реально работает! Береги вас, Господь, за ваши идеи. Спасибо от всей души.

Аватар пользователя
Ученик

Почему первый бот работает без ошибок, хотя код в обоих одинаковый?



Видео по теме