Как сделать, чтобы Telegram бот отправлял музыку на Python
Должен отправлять с помощью функции send_audio, но не отправляет. Может быть моя ошибка в функции open
где написал rb. Как должны открываться mp3 файлы?
(при запуске отображается клавиатура, но если нажимать на трек, не отправляет)
Вот код:
import telebot
from telebot import types
bot = telebot.TeleBot('')
@bot.message_handler(commands=['start'])
def welcome(message):
markup = types.ReplyKeyboardMarkup()
item1 = types.KeyboardButton("Music1")
item2 = types.KeyboardButton("Music2")
item3 = types.KeyboardButton("Music3")
markup.add(item1, item2, item3)
bot.send_message(message.chat.id, "Бла-бла".format(message.from_user, bot.get_me()),
reply_markup=markup)
@bot.message_handler(commands=['text'])
def send_audio(user_id):
if message.chat.type == 'private':
if message.text == 'Music1':
audio = open('Бла-бла1.mp3', 'rb')
bot.send_audio(chat.id, audio)
elif message.text == 'Music2':
audio = open('Бла-бла2.mp3', 'rb')
bot.send_audio(chat.id, audio)
elif message.text == 'Music3':
audio = open('Бла-бла3.mp3', 'rb')
bot.send_audio(chat.id, audio)
else:
bot.send_message(message.chat.id, 'Бла-бла')
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: Sadykhzadeh
→ Ссылка
Вы ошиблись в том, что вместо message.chat.id пишите chat.id.
....
if message.text == 'Music1':
audio = open('Бла-бла1.mp3', 'rb')
bot.send_audio(message.chat.id, audio)
elif message.text == 'Music2':
audio = open('Бла-бла2.mp3', 'rb')
bot.send_audio(message.chat.id, audio)
elif message.text == 'Music3':
audio = open('Бла-бла3.mp3', 'rb')
bot.send_audio(message.chat.id, audio)
....
А вообще, советую Вам загрузить эти самые .mp3 файлы в Telegram и через какого-то нибудь бота сохраните его id и посылайте его при надобности отправить музыку - таким образом Вы облегчите работу и себе, и серверам Telegram :)
Как это сделать? Как бы сделал я:
- Открой бота @ShowJSONBot (или любого другого, который будет тебе возвращать JSON сообщения)
- Отправь ему .mp3 файл
- Всё, твой файл в Telegram! Бот тебе вернёт JSON, в котором ты найдёшь параметр
file_unique_id
Этот file_unique_id и нужно будет отправлять так:
bot.send_audio(message.chat.id, 31279387129.....)