- Зачем светить своим токеном?
- Зачем 2 раза объявлять одну и туже функцию callback_message?
- Внутри функции callback_message Вы использовали callback.message.chat.id для отправки сообщений, но callback.message является ссылкой на сообщение, которое инициировало callback, а не на сообщение, которое нужно отправить.
- А как же обработка callback_data cadastral?
- message.message_id минус 0?
import telebot
from telebot import types
bot = telebot.TeleBot('token')
file = open('./start1.jpg', 'rb')
@bot.message_handler(commands=['start'])
def start(message):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('Оценка', url='https://google.com'))
markup.add(types.InlineKeyboardButton('Кадастровые работы', callback_data='cadastral'))
markup.add(types.InlineKeyboardButton('Строительные экспертизы', callback_data='expertise'))
bot.send_photo(message.chat.id, file,
caption='Здравствуйте, это Бот-помощник группы компаний "Стандарт Оценка", я помогу Вам определиться с нужной услугой, оформить заявку и связаться с администратором. Выберете желаемую услугу',
reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def callback_message(call):
if call.data == 'cadastral':
bot.delete_message(call.message.chat.id, call.message.message_id)
bot.send_message(call.message.chat.id, 'Введите свое ФИО')
bot.register_next_step_handler(call.message, message_input_step)
elif call.data == 'expertise':
bot.send_message(call.message.chat.id, 'Вы выбрали Строительные экспертизы')
elif call.data == 'all':
bot.send_message(call.message.chat.id, 'Все данные верны')
def message_input_step(message):
global name
name = message.text
bot.send_message(message.chat.id, 'Введите свой номер телефона')
bot.register_next_step_handler(message, phone)
def phone(message):
global phone
phone = message.text
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('Все верно✅', callback_data='all'))
markup.add(types.InlineKeyboardButton('Начать сначало❌', callback_data='cadastral'))
bot.send_message(message.chat.id, f'Ваше ФИО: {name}\nВаш номер телефона: {phone}', reply_markup=markup)
if __name__ == "__main__":
bot.polling(none_stop=True)