@szjyakgf

Как боту изменить сообщение?

Как сделать телеграм боту изменение сообщений
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
	await bot.send_message(message.chat.id, 'Ждем: 2сек')
	await sleep(1)
	await bot.edit_message_text(chat_id=message.chat.id, message_id=message.message_id, text='Ждем: 1сек')
	await sleep(1)
	await bot.edit_message_text(chat_id=message.chat.id, message_id=message.message_id, text='Готово')

Но выдает ошибку aiogram.utils.exceptions.MessageCantBeEdited: Message can't be edited
  • Вопрос задан
  • 2020 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
message в этой функции - это сообщение пользователя, который написал /start. Дальше бот пытается редактировать это сообщение... и не получается! Конечно, ведь он может редактировать только свои сообщения, а чужие не может.

Он должен просто редактировать своё сообщение, а не сообщение пользователя:

my_new_message = await bot.send_message(message.chat.id, 'Ждем: 2сек')
await sleep(1)
await bot.edit_message_text(chat_id=message.chat.id, message_id=my_new_message.message_id, text='Ждем: 1сек')
...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@NoGrisha
Точка.
Сначала вам нужно первое ваше сообщение взять и запихнуть в переменную и умудрить его отправить с помощью этой строчки:
m = await bot.send_message(message.chat.id, 'Ждем: 2сек')

Потом вы также асинхронно изменяете его: await m.edit(content = "Ждем: 1сек")

Может быть что это не верно, протестируйте, потому что без ошибки трудно что-то сказать сходу...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы