domingo, 26 de marzo de 2023

Interfaz gráfica usando Python y el bot de Telegram


En este tutorial vamos a aprender a crear una interaz gráfica con el bot de telegram usando Python y el bot API.


Para comenzar debemos crear un bot de telegram usando el bot padre (coconocido por su alias @botfather). Si no conoces como crear un bot puedes encontrarlo aquí. 



Ahora,creamos un script de Python con el siguiente código y lo guardamos con el nombre teleGui.py:


#variable que contiene la interfaz gráfica 
gui={
   "chat_id":"19307681", #id del destinatario
   "text":"hola", #texto del mensaje
   "reply_markup":{ #elementos de la interfaz gráfica 
      "keyboard":[ #botones
         [
            {
               "text":"hola", #texto del boton 1
               "payload":"mundo" #payload del botón 1
            }
         ]
      ]
   }
}

Creamos otro script con el siguiente código y lo guardamos con el nombre de testBot.py en el mismo directorio donde se guardò el script anterior.

import teleGui #importamos el módulo que contiene la interfaz gráfica
#importamos el módulo de control del bot API
import utelegram
#creamos asociada a la entrada de un mensaje en general 
def get_message(message):
    print(message) #descomente para visualizar el objeto mensaje
    print(message['message']['text'])
    bot.send(message['message']['chat']['id'], message['message']['text'].upper())
#creamos una fucnión asociada a la entrada de un mensaje tipo /comando 
def reply_ping(message):
    #print(message) #descomente para visualizar el objeto mensaje
    data=teleGui.gui #cargamos los datos de la interfaz gráfica
    data['chat_id']=message['message']['chat']['id'] #cargamos el id de remitente para devolver el mensaje
    data['text']='inicio' #cambiamos el texto del mensaje
    bot.send(data) 
#creamos el bot
try:
    bot = utelegram.ubot('AAHAxZsc5HW7_ofxUZLMW_T7Lz3ZNFaWg6A') #usamos nuestro PIN
    bot.register('/start', reply_ping)   #asociamos la función de entrada al comando /start
    bot.set_default_handler(get_message) #asociamos la función de entrada de un mensaje en general 
    print('BOT LISTENING')               #Mensaje de depuración
    bot.listen()                         #iniciamos la escucha continua de mensajes, esta fucnión
                                         #bloquea la ejecución del programa
except:
    print('NOT CONNECTED - aborting')    # controlamos si existe algún error
 

Ejecutamos el script testBot.py y esperamos a que se conecte al bot. Si no existe  ningún problema se imprimirá el mensaje BOT LISTENING el bot empezará a escuchar los mensajes.



Para cargar la interfaz gráfica, se debe enviar el comando /start al bot o presionar INICIAR. El bot responderá con un mensaje "inicio" y se cargará el botón de la interfaz gráfica.  

 

Ahora, presionando el botón ya se puede enviar el  mensaje "hola" al bot y este responderá con el mismo mensaje pero en mayúsculas.


Mira el funcionamiento en el siguiente video.







No hay comentarios: