Как отправить фото при нажатии на кнопку. Кнопка "Начать тренировку"?
import telebot
from telebot import types
bot = telebot.TeleBot('')
@bot.message_handler(commands=["start"])
def start(message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add(*[types.KeyboardButton(name) for name in ['Начать заниматься?']])
keyboard.add(*[types.KeyboardButton(name) for name in ['Программа для занятий в зале']])
keyboard.add(*[types.KeyboardButton(name) for name in ['Наша группа спорта?️']])
keyboard.add(*[types.KeyboardButton(name) for name in ['Наши проекты?']])
keyboard.add(*[types.KeyboardButton(name) for name in ['Пожелания?']])
bot.send_message(message.chat.id, 'Выберите действие', reply_markup=keyboard)
@bot.message_handler(content_types=['text'])
def hundle_text(message):
if message.text == 'Начать заниматься?':
keyboardgostart = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboardgostart.row('Спортивный зал?')
keyboardgostart.row('Улица?')
keyboardgostart.row('Назад')
bot.send_message(message.chat.id, 'Выберите место тренировки', reply_markup=keyboardgostart)
elif message.text == 'Спортивный зал?':
zal = types.ReplyKeyboardMarkup(resize_keyboard=True)
zal.row('Плечи, Грудь?')
zal.row('Спина, Бицепс?')
zal.row('Ноги?')
zal.row('Назад')
bot.send_message(message.chat.id, 'Выберите, что хотите тренировать', reply_markup=zal)
elif message.text == 'Плечи, Грудь?':
plesandgrud = types.ReplyKeyboardMarkup(resize_ketboard=True)
plesandgrud.row('Начать тренировку')
bot.send_message(message.chat.id, 'Как будите готовы нажмите на кнопку "Начать тренировку"')
elif message.text == 'Начать тренировку':
Ответы (1 шт):
Автор решения: Edward Grachev
→ Ссылка
Вот так можно отправить аудио:
with open(audio_file_patch, 'rb') as file:
audio = file.read()
file_id = dict(bot.send_audio(message.chat.id, title=title, audio=audio, duration=duration, reply_markup=keyboard))
Фото вроде:
with open(photo_file_patch, 'rb') as file:
photo = file.read()
file_id = dict(bot.send_photo(message.chat.id, photo=photo))
В файл id сохраняем ид файла что бы каждый раз его не загружать на сервер, а говорить серверу какой файл нужно отправить:
bot.send_audio(message.chat.id, 'Тут id файла который уже загружали на сервер')
Если фото по ссылке в интернете:
bot.send_photo(message.chat.id, photo='ссылка на фото')
Прочитай подробнее про: bot.send_photo
Если отправляете файл с компа, то лучше откройте его для чтения в 'rb' и отправляйте , не забудьте только закрыть после отправки file.close()