не могу сделать кнопки через калбек дату
import telebot
from telebot import types
bot = telebot.TeleBot('ТОКЕН')
@bot.message_handler(commands=['start'])
def main(message):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('♾️Выбрать товар♾️', callback_data='tovar'))
markup.add(types.InlineKeyboardButton('?Отзывы магазина?', url='https://t.me/yoki_cmd_channel'))
markup.add(types.InlineKeyboardButton('?Другие услуги?', url='https://t.me/yoki_cmd'))
bot.send_message(message.chat.id, '?Привет! Это бот для покупки моих услуг.?', reply_markup=markup)
@bot.callback_query_handler(func=lambda callback: True)
def callback_message(callback):
if callback.data == 'tovar':
@bot.message_handler()
def main_1():
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('♾️Простой бот♾️', callback_data='text'))
markup.add(types.InlineKeyboardButton('?Сложный бот?', url='https://www.youtube.com/watch?v=czzRawdEcKI'))
markup.add(types.InlineKeyboardButton('?Экспресс бот?', url='https://www.youtube.com/'))
bot.send_message(callback.message.chat.id, '?Какой желаете выбрать товар? Нажмите ниже.?')
elif callback.data == 'text':
bot.send_message(callback.message.chat.id, '123123')
bot.polling(none_stop=True)
хочу сделать так, что бы когда пользователь нажимал на "выбрать товар", ему высвечивалось сообщение "какой желаете выбрать товар" с 3 кнопками "простой бот, сложный бот, экспресс бот" они тупо не высвечиваются, ошибок пайчарм не показывает, помогите пожалуйста
Ответы (1 шт):
Автор решения: Pet Linux
→ Ссылка
Попробуйте сделать так:
import telebot
from telebot import types
bot = telebot.TeleBot('СВОЙ ТОКЕН ВСТАВЬТЕ СЮДА')
@bot.message_handler(commands=['start'])
def main(message):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('♾️Выбрать товар♾️', callback_data='tovar'))
markup.add(types.InlineKeyboardButton('?Отзывы магазина?', url='https://t.me/yoki_cmd_channel'))
markup.add(types.InlineKeyboardButton('?Другие услуги?', url='https://t.me/yoki_cmd'))
bot.send_message(message.chat.id, '?Привет! Это бот для покупки моих услуг.?', reply_markup=markup)
@bot.callback_query_handler(func=lambda callback: True)
def callback_message(callback):
if callback.data == 'tovar':
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('♾️Простой бот♾️', callback_data='text'))
markup.add(types.InlineKeyboardButton('?Сложный бот?', url='https://www.youtube.com/watch?v=czzRawdEcKI'))
markup.add(types.InlineKeyboardButton('?Экспресс бот?', url='https://www.youtube.com/'))
bot.send_message(callback.message.chat.id, '?Какой желаете выбрать товар? Нажмите ниже.?', reply_markup=markup)
elif callback.data == 'text':
bot.send_message(callback.message.chat.id, '123123')
bot.polling(none_stop=True)
В этом коде необязателен ещё один хэндлер @bot.message_handler() и функция main_1. Иначе, бот будет пытаться сделать кнопки после того, как пользователь отправил ещё какой-то текст.