Как решить проблему с удалением сообщений в telegraf js?

У меня бот построен по такому принципу:

1) Появляется сообщение и кнопка
2) Кликаем по кнопке, бот удаляет по айдишнику сообщение и выдает новое.

Но если пользователь, допустим запускает бота два раза, и пролистывает к старым сообщения и жмет кнопку, бот пытается удалить сообщение у которого уже новое айди, соответственно бот вылетает.

Код:

bot.start( async (ctx)=>{
//записываю в переменную resultStart, чтобы потом достать адишник сообщения и удалить
//Допустим записал тут id сообщения = 500
resultStart = await ctx.reply('текст бота', keyboard)

)}

//следующее действие если кликнет пользователь:
bot.action( 'interes', async ctx => {

//если переменная есть, успешно удаляется
    if (resultStart) {
       await bot.telegram.deleteMessage(resultStart.message_id) 
       await ctx.reply('текст бота', keyboard)
    }
})
//И вдруг пользователь нажимает опять запустить бота, происходит тоже самое, но уже resultStart запишет id 501
//И тут пользователь переходит не к последней кнопке, а к той что в первом запуске бота была, нажимаем кнопку
//И бот пытается удалить сообщение с id 500, а его уже нет, он же уже 501. И вылетает..


Как решить данную проблему?
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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