#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. Спасибо, я это знаю, и на самом деле я написал, что он может это сделать, только если он заинтересован в изменении, в любом случае спасибо за предупреждение, в следующий раз я постараюсь отвечать только на те вещи, которые я хорошо знаю, в данном случае это было лучшее, что я думал сделать.