Задать вопрос
@Gipokotil

Как сделать так, чтобы после нажатия на кнопку должен отправляться файл (библиотека Telebot)?

Я делаю бота, библиотекаря, который высылает книги. Пользователь нажимает на кнопку и ему высылается файл с этой книгой. Бот почему-то не высылает книгу. Подскажите пожалуйста.
Фрагмент кода:
def buttons(message):
        markup =types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
        btn11 = types .KeyboardButton("Остров сокровищ. Р. Стивенсон")
        btn12 = types .KeyboardButton("книга")
        btn13 = types .KeyboardButton("книга")
        btn14 = types .KeyboardButton("книга")
        btn15 = types .KeyboardButton("книга")
        markup.add(btn11, btn12, btn13, btn14, btn15)
        bot.send_message(message.chat.id, "Ввыберите книгу", reply_markup=markup)
        #Сюда добавляются книги
        markup.add(btn11, btn12, btn13, btn14, btn15)
        if message.text == 'Остров сокровищ. Р. Стивенсон':
            file=open("Остров сокровищ. Р. Стивенсон.fb2", 'rb')
            bot.send_message(message.chat.id, file)
  • Вопрос задан
  • 265 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
deepblack
@deepblack Куратор тега Python
  • Подобный вопрос тут неоднократно задавался
  • Возьми учебник по Python и изучай его много и внимательно, параллельно с написанием ботов
  • Смотри в документацию Telegram и той библиотеки что ты используешь

Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
rosh1k
@rosh1k
python - не более
bot.send_message(message.chat.id, file)
не так , а вот так:
bot.send_document(message.chat.id, open("Остров сокровищ. Р. Стивенсон.fb2", 'rb'))


дополнительно:

  • советую разделить все по файлам , типо в одном файле все кнопки , в другом сам код
  • ну и на будущее отправлять фото / видео: send_video/send_photo
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы