es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtén el mensaje y úsalo en un bot de Telegram (pyTelegramBotAPI).

Estoy creando un bot de Telegram. Quiero escribir código que:
el usuario envía el comando – /color
el bot pregunta ‘Rojo: ‘
el usuario envía texto

¿Cómo puedo obtener ese mensaje sin el ‘/’?

@bot.message_handler(commands=['color'])
def info_produkts(message):
    bot.send_message(message.chat.id, "Rojo: ")
    text = Update.message.replay_text()

Pero no está funcionando…
Estoy trabajando en Visual Studio Code.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener el mensaje sin la barra diagonal (/) en un bot de Telegram, puedes modificar el código de la siguiente manera:

    @bot.message_handler(commands=['color'])
    def color_command_handler(message):
        bot.send_message(message.chat.id, "Red: ")
        bot.register_next_step_handler(message, receive_color)
    
    def receive_color(message):
        text = message.text
        if text.startswith('/'):
            text = text[1:]
        # Haz algo con el mensaje recibido
    

    En este código, la función receive_color se registra como el siguiente controlador de pasos después de enviar el mensaje “Red: “. Esta función se llamará cuando el usuario envíe un mensaje en respuesta al bot.

    La variable text contiene el texto del mensaje recibido, que puede o no comenzar con una barra diagonal. El método startswith se utiliza para verificar si el texto comienza con una barra diagonal y, si es así, se elimina mediante el uso de slices. Por último, puedes utilizar el texto del mensaje recibido para hacer lo que necesites hacer.

Comments are closed.