Как настроить телеграм-бота для перенаправления голосовых сообщений мне?

Существует бот, который перенаправляет все "непонятные" сообщения, включая голосовые, на мой личный Telegram. Код примерно выглядит так: 
<br/><pre><code class="python">import telebot;
bot = telebot.TeleBot("Токен");
@bot.message_handler(content_types=['photo','text', 'document', 'voice'])
def get_text_messages(message):
     if message.voice != None:
            voice_id=message.voice.file_id
            file_info = bot.get_file(voice_id)
            bot.send_message(&lt;Мой id&gt;, "http://api.telegram.org/file/bot"+"&lt;Токен&gt;"+"/"+file_info.file_path+" ОТ: "+str(message.from_user.id)+" "+message.from_user.first_name)</code></pre>
<br/> Все работает, бот также может отправлять голосовые сообщения с ПК: 
<br/><pre><code class="python">import telebot
bot = telebot.TeleBot('&lt;Токен&gt;')
audio = open(r'/home/nadya/test2.OGG', 'rb')
bot.send_audio(&lt;id чата&gt;, audio)
audio.close()</code></pre> 
<br/> И это тоже функционирует. Однако мне нужно, чтобы бот после получения голосового сообщения отправлял его мне непосредственно, а не ссылку на его скачивание.
  • 11 декабря 2024 г. 6:33
Ответы на вопрос 2
Для того чтобы ваш Telegram-бот перенаправлял голосовые сообщения непосредственно вам (а не ссылку на скачивание), необходимо воспользоваться методом `send_voice()`, который позволяет отправить голосовое сообщение в формате `file_id`. Вот обновленная версия вашего кода:

```python
import telebot

bot = telebot.TeleBot("Ваш_Токен")

@bot.message_handler(content_types=['photo', 'text', 'document', 'voice'])
def get_text_messages(message):
    if message.voice:
        voice_id = message.voice.file_id
        # Используем send_voice для отправки голосового сообщения непосредственно
        bot.send_voice(<Ваш_ид>, voice_id, caption="ОТ: " + str(message.from_user.id) + " " + message.from_user.first_name)

# Здесь вы можете добавить код для запуска бота
bot.polling()
```

### Объяснение кода:

1. Мы проверяем, есть ли в сообщении голосовое сообщение (`if message.voice:`).
2. Если да, мы извлекаем `file_id` голосового сообщения.
3. Затем мы используем `bot.send_voice()` для отправки самого голосового сообщения вам, передавая `file_id` в качестве аргумента. Также можно добавить подпись (caption), если это необходимо.

### Запуск бота:

Не забудьте добавить код для запуска бота, например, вызов `bot.polling()` в конце, чтобы бот начал обрабатывать сообщения.

### Примечание:

- Не забудьте заменить `<Ваш_Токен>` на токен вашего бота и `<Ваш_ид>` на ваш уникальный идентификатор Telegram, куда будут отправляться голосовые сообщения.
- Убедитесь, что у бота есть необходимые разрешения для работы с голосовыми сообщениями в вашем чате.
message.copy_to(chat_id=“ваш чат айди“)
Похожие вопросы