No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Procesando la entrada del usuario para el chatbot

19/24
Recursos

En el mundo de la programación, una de las habilidades más valiosas es poder tomar datos de cualquier tipo y transformarlos en información útil y manejable. Este es el caso al procesar entradas de usuario en aplicaciones de mensajería como Telegram. Es aquí donde Python y su versatilidad entran en juego, como vamos a descubrir en este artículo educativo.

Procesamiento de mensajes en Telegram con Python

Crear un bot de Telegram puede parecer una tarea desafiante, pero con las herramientas adecuadas y una buena guía, es un proceso bastante directo. En este caso vamos a utilizar Python, un lenguaje de programación conocido por su simpleza y eficacia en una gran diversidad de proyectos, incluido el desarrollo de bots.

¿Qué pasos seguimos para procesar entradas en nuestro bot?

Para empezar, creamos un archivo llamado getUpdate.py en Visual Studio Code. Este archivo será la piedra angular para manejar las entradas que recibamos en nuestro bot de Telegram. - Para este propósito, se requieren dos librerías fundamentales: - Requests: Para realizar solicitudes HTTP a la API de Telegram y recibir datos. - Time: Que utilizaremos para manejar intervalos de tiempo entre las peticiones al servidor de Telegram para evitar el uso excesivo de recursos.

¿Cómo estructurar la función getUpdate?

La función getUpdate toma como parámetro el 'token' que funciona como identificador único de nuestro bot dentro de la plataforma de Telegram. - Definimos la URL de la API de Telegram utilizando https://api.telegram.org/bot, seguido del token proporcionado. - Además, introducimos un parámetro llamado offset, inicializado en None, que más tarde nos servirá para especificar desde qué mensaje queremos obtener actualizaciones.

¿Cómo accedemos y leemos los mensajes nuevos?

Para leer los mensajes que envían los usuarios a nuestro bot, creamos una función llamada print_new_messages. Esta función realiza múltiples tareas: - Inicia con un bucle while True para hacer peticiones constantes a la API de Telegram. - Utiliza la variable update para almacenar los mensajes nuevos mediante la función getUpdate. - Revisa si la estructura result del JSON (que contiene las actualizaciones) tiene elementos para iterar sobre ellos. - Extrae información vital como el mensaje, el ID del usuario y el nombre de usuario (username) a partir del JSON recibido. - Imprime en la consola la información de forma clara y estructurada, asignando a offset el indicador del último mensaje procesado más uno (update_id + 1), para continuar con la siguiente actualización.

¿Cómo mantener la seguridad de nuestro bot?

Es crucial no compartir el token de nuestro bot públicamente para mantener la seguridad. Se recomienda tratarlo como una variable de entorno o guardarlo en un lugar seguro que sólo el desarrollador pueda acceder.

¿Qué sucede una vez ajustado el código?

Después de corregir cualquier error tipográfico en el código y asegurarnos de que no hay problemas al ejecutarlo, estaremos listos para comenzar a procesar entradas y responder a los usuarios.

La implementación de estos procedimientos no sólo nos permite tener un canal de comunicación eficiente con los usuarios sino también posibilita la automatización de tareas y la integración con otras funcionalidades que podemos desarrollar a futuro. Esta es una muestra de cómo Python facilita la creación de herramientas que interactúan con la web y los servicios de mensajería instantánea.

Recuerda, este es sólo el comienzo del proceso. En las próximas etapas, integraremos todo este trabajo en la función principal de nuestro proyecto para darle vida a nuestro bot de Telegram. Cada paso que damos es un aprendizaje que nos acerca más a la meta. Entonces, ¡manos a la obra!

Y tú, ¿estás preparado para dar el siguiente paso y continuar aprendiendo? ¡Anímate! Cada línea de código que escribes te acerca más al fascinante mundo del desarrollo de bots y la automatización.

Aportes 5

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

me duele esa identación tan grande ⚠️

Preparando la entry del user

Dejo mi codigo con comentarios si alguien se perdio po que significa cada linea:

import requests
import time

def get_updates(token, offset=None):
    # definimos url
    url = f"https://api.telegram.org/bot{token}/getUpdates"
    # asignamos params desde offset
    params = {"offset": offset} if offset else {}
    # obtenemos la respuesta http GET
    response = request.get(url,params =params)
    # devolvemos en un JSON
    return response.json()

def print_new_messages(token):
    # el siguiente por default no existe
    offset = None
    # Para que haga peticiones siempre
    while True:
        # obtenemos respuestas
        updates = get_updates(token,offset)
        # validamos que hayan resultados desde http GET
        if "result" in updates:
            #imprimimos todas las respuestas
            for update in updates["result"]:
                message = update["result"]
                id = message["from"]["id"]
                username = message['from']["first_name"]
                text = message.get("text")
                print(f"Usuario: {username}({id})")
                print(f"Mensaje: {text}")
                print("-"*20)
                # Pasar al siguiente
                offset = update["update_id"]+1 

        time.sleep(1)
token = "TELEGRAM_TOKEN"
print_new_messages(token)

Que tal la opción de ver primero el resultado final para ir entendiendo mejor lo que se esta haciendo en cada línea de código?

message = update[‘result’]
#me marca un error de clave, lo resolví así:
message = update[‘message’]

por que telegram y no whatapp? ,nos guste o no la mayoria de la gente usa whatapp ahi estan los clientes