Как сделать так, чтобы после нажатия на кнопку "№1" открывалось фото?
Вот пример кода (я использую только инлайн клавиатуру. всё зависит от текста сообщения пользователя):
import telebot
from telebot import types
token = ''
bot = telebot.TeleBot(token)
@bot.message_handler(commands=['start'])
def welcome(message):
sticker = open('files/welcome.webp', 'rb')
bot.send_sticker(message.chat.id, sticker)
bot.send_message(message.chat.id, "Привет, {0.first_name}! " .format(message.from_user),
parse_mode='html')
@bot.message_handler(content_types=['text'])
def key(message):
if message.text == '1':
markup = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton("1", callback_data='1')
item2 = types.InlineKeyboardButton("2", callback_data='2')
markup.add(item1, item2)
bot.send_message(message.chat.id, "Выбирай:", reply_markup=markup)
elif message.text == '2':
markup = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton("3", callback_data='3')
item2 = types.InlineKeyboardButton("4", callback_data='4')
markup.add(item1, item2)
bot.send_message(message.chat.id, "Выбирай:", reply_markup=markup)
else:
sticker = open('files/wat.webp', 'rb')
bot.send_sticker(message.chat.id, sticker)
bot.send_message(message.chat.id, "Не найдено совпадений. Попробуй написать это сообщение по-другому.", parse_mode='html')
@bot.callback_query_handler(func=lambda call: True)
def zadanie(call):
if call.data == '1':
markup = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton("№1", callback_data='st')
markup.add(item1)
bot.send_message(call.message.chat.id, "Выбирай:", reply_markup=markup)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Выбирай:", reply_markup=None)
bot.answer_callback_query(callback_query_id=call.id, show_alert=False,
text="Ты выбрал: 1")
#Что писать тут?
if call.data == 'st':
st = open('files/st.jpg', 'rb')
bot.send_photo(message.chat.id, st)
bot.polling(none_stop=True)