Python Bot. Перезапуск формы ввода
В боте реализована форма ввода для отправки данных во внешний ресурс. Но при перезапуске (тыкнуть "нет, давай заново") message_id слетает и нужное сообщение не редактируется и выдаёт "Error code: 400. Description: Bad Request: message to edit not found"". Как сделать так, чтобы этот цикл работал?
import telebot
import time
from telebot import types
token = 'xxxxx'
bot = telebot.TeleBot(token)
name = 0
surname = 0
phnumb = 0
@bot.message_handler(commands=['start'])
def start(message):
user_name = message.from_user.first_name
bot.send_message(message.from_user.id, text = "Приветствую, "+str(user_name))
time.sleep(3)
keyboard = types.InlineKeyboardMarkup()
key_yes = types.InlineKeyboardButton(text='Начинаем!', callback_data='main_menu');
keyboard.add(key_yes)
question = "Начнём работу?"
bot.edit_message_text(chat_id = message.chat.id,
message_id = message.message_id+1,
text=question,
reply_markup=keyboard)
@bot.callback_query_handler(func=lambda call: True)
def main_menu(c):
if c.data == 'main_menu':
bot.answer_callback_query(c.id)
keyboard = types.InlineKeyboardMarkup(row_width = 1)
key_clients = types.InlineKeyboardButton(text='Клиенты', callback_data= 'clients')
keyboard.add(key_clients)
bot.edit_message_text(chat_id=c.message.chat.id,
message_id=c.message.message_id,
text = 'ГЛАВНОЕ МЕНЮ',
reply_markup=keyboard)
elif c.data == 'clients':
bot.answer_callback_query(c.id)
keyboard = types.InlineKeyboardMarkup(row_width = 1)
key_addclients = types.InlineKeyboardButton(text='Добавить клиента', callback_data='add_client')
key_backtomenu = types.InlineKeyboardButton(text='Вернуться в меню', callback_data='main_menu')
keyboard.add(key_addclients, key_backtomenu)
bot.edit_message_text(chat_id=c.message.chat.id,
message_id=c.message.message_id,
text = 'КЛИЕНТЫ',
reply_markup=keyboard)
elif c.data == 'add_client':
bot.answer_callback_query(c.id)
bot.edit_message_text(chat_id=c.message.chat.id,
message_id=c.message.message_id,
text = 'Введи фамилию нового клиента')
@bot.message_handler(content_types=['text'])
def get_surname(message):
global name
name = message.text
bot.delete_message(message.chat.id, message.message_id)
time.sleep(0.5)
bot.edit_message_text(chat_id = message.chat.id,
message_id = message.message_id-1,
text = 'Принято.')
time.sleep(1)
bot.edit_message_text(chat_id = message.chat.id,
message_id = message.message_id-1,
text = 'А как его зовут?')
bot.register_next_step_handler(message, get_name)
def get_name(message):
global surname
surname = message.text;
bot.delete_message(message.chat.id, message.message_id)
time.sleep(0.5)
bot.edit_message_text(chat_id = message.chat.id,
message_id = message.message_id-2,
text = 'Записал.')
time.sleep(1)
bot.edit_message_text(chat_id = message.chat.id,
message_id = message.message_id-2,
text = 'Напиши номер телефона в формате **70000000000**')
bot.register_next_step_handler(message, get_phnumb)
def get_phnumb(message):
global phnumb
phnumb = message.text
bot.delete_message(message.chat.id, message.message_id)
time.sleep(0.5)
bot.edit_message_text(chat_id = message.chat.id,
message_id = message.message_id-3,
text = 'Зафиксировал.')
time.sleep(1)
keyboard = types.InlineKeyboardMarkup(row_width = 1)
key_yes = types.InlineKeyboardButton(text = 'Да, верно',
callback_data='addnewclient')
key_no = types.InlineKeyboardButton(text = 'Нет, давай заново',
callback_data='add_client') #вот тут проблема
keyboard.add(key_yes, key_no)
question = surname+' '+name +'\n'+ str(phnumb)+'\n'+'Верно?'
bot.edit_message_text(chat_id = message.chat.id,
message_id = message.message_id-3,
text=question,
reply_markup=keyboard)
bot.polling(none_stop=True, interval=0)