Как я могу обрабатывать аудиосообщения в pyTelegramBotAPI?

#python #bots #telegram

#python #боты #telegram

Вопрос:

Я использую pyTelegramBotAPI в качестве фреймворка для создания бота telegram. У меня возникли некоторые проблемы с обработкой аудиосообщений, и я не могу понять, где я ошибаюсь.

Вот мой код:

 # If user send an audio and it's a private chat
@bot.message_handler(content_types=["audio"])
def react_to_audio(message):
    if message.chat.type == "private":
        bot.reply_to(message, """What a nice sound! I'm not here to listen to some audio, tho. My work is to wish a good night to all members of a group chat""")
 

Кто-нибудь может мне помочь?

Ответ №1:

я не очень хорошо знаю, как использовать pyTelegramBotAPI, потому что у меня также были проблемы, которые я не мог решить, поэтому я отказался от него для python-telegram-bot, который лучше документирован по сравнению с pyTelegramBotAPI, имеет большее сообщество, более активно развивается, а также имеет активную группу Telegram, где вы можете напрямую запроситьпомощь от других разработчиков, использующих эту оболочку.

Итак, если вы заинтересованы в переходе на python-telegram-bot, код для вашего бота будет выглядеть примерно так:

 from telegram import Update
from telegram.ext import Updater, MessageHandler, Filters

token = "" #Insert your token here


def message_handler(update, context):
    update.message.reply_text("Hello")

def audio_handler(update, context):
    if update.message.chat.type == "private": #Checks if the chat is private
        update.message.reply_text("What a nice sound! I'm not here to listen to some audio, tho. My work is to wish a good night to all members of a group chat")



def main():
    """Start the bot."""
    updater = Updater(token, use_context=True)

    # Get the dispatcher to register handlers
    dispatcher = updater.dispatcher


    # on noncommand i.e message
    # Use this if you want to handle also other messages
    dispatcher.add_handler(MessageHandler(Filters.text amp; ~Filters.command, message_handler))

    dispatcher.add_handler(MessageHandler(Filters.audio amp; ~Filters.command, audio_handler))

    # Start the Bot
    updater.start_polling()

    # Run the bot until you press Ctrl-C or the process receives SIGINT,
    # SIGTERM or SIGABRT. This should be used most of the time, since
    # start_polling() is non-blocking and will stop the bot gracefully.
    updater.idle()


if __name__ == '__main__':
    main()
 

Вот также несколько официальных примеров ботов, созданных с помощью этой оболочки, и которые вы можете использовать для лучшего понимания оболочки, если вы хотите получить больше информации об этом, не стесняйтесь писать мне в telegram @Husnainn.

Комментарии:

1. Добро пожаловать в SO Husnain. Это не ответ на их вопрос об использовании pyTelegramBotAPI.

2. Спасибо, я это знаю, и на самом деле я написал, что он может это сделать, только если он заинтересован в изменении, в любом случае спасибо за предупреждение, в следующий раз я постараюсь отвечать только на те вещи, которые я хорошо знаю, в данном случае это было лучшее, что я думал сделать.