Desarrollando BOTs para Telegram - Parte 1

Iniciado por blackdrake, Febrero 01, 2018, 05:17:37 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 01, 2018, 05:17:37 PM Ultima modificación: Febrero 01, 2018, 05:23:10 PM por blackdrake

¿Qué es un bot?

A mitad del 2015 Telegram incorporó los bots en su aplicación. Básicamente son pequeños programas que encuentran en servidores y podemos acudir a ellos en cualquier momento para conseguir cualquier tipo de funcionalidad.

O como el propio Telegram dice:

  • Recibe notificaciones y noticias personalizadas. Un bot puede actuar como un periódico inteligente, enviándole contenido relevante tan pronto como se publique.

  • Integrar con otros servicios. Un robot puede enriquecer los chats de Telegram con contenido de servicios externos.


  • Acepte pagos de los usuarios de Telegram. Un bot puede ofrecer servicios pagados o trabajar como una tienda virtual.

  • Crea herramientas personalizadas Un bot puede proporcionarle alertas, pronósticos del tiempo, traducciones, formato u otros servicios.

  • Compila juegos de un solo jugador y multijugador. Un robot puede ofrecer experiencias ricas en HTML5, desde simples arcades y acertijos hasta tiradores 3D y juegos de estrategia en tiempo real.

  • Construye servicios sociales. Un bot podría conectar a las personas que buscan interlocutores basados ​​en intereses comunes o proximidad.

Conclusión, puedes hacer prácticamente cualquier otra cosa!

Más información sobre los BOTs: No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

¿Quién puede hacer un bot?

Cualquiera, siempre y cuando tenga los conocimientos suficientes de programación y se anime a hacerlo. Telegram tiene una extensa documentación que nos explica cómo podemos crearlos.


Tipos de bots
Hay dos tipos de bots en Telegram: los bots normales y los llamados "Inline".

Para utilizar los bots normales tenemos que abrir un chat con ellos o incluirlos en el grupo donde queramos utilizarlo.  Pudiendo utilizarlo todas las veces que queramos.

Los Inline Bots están disponible desde principios del año 2016 y la diferencia es en que no necesitamos incluirlos en ninguna grupo para usarlos. Los podemos utilizar en cualquier momento, simplemente tendremos que añadir una arroba con su nombre a la hora de escribir un nuevo mensaje para poder empezar a utilizarlos. Los resultados que nos ofrezcan aparecerán en un menú flotante dentro de la misma conversación y podremos elegir el resultado que más nos guste para mostrar al resto de miembros de dicha conversación.

Un claro ejemplo de los bot inline es el siguiente:


Creación del BOT (Introducción)

Telegram creó hace un par de años una API para la creación de bots con la cual se pueden crear la conexión de manera muy simple, ya que todo se hace a través de HTTP.

Lo primero que debemos hacer es crear un chat con @BotFather e iniciarlo.

Una vez hecho hecho, escribiremos /newbot para comenzar el proceso de creación de nuestro bot.


Acto seguido, nos preguntará es el nombre de nuestro bot.


En segundo lugar nos pedirá el alias, (este debe terminar en bot).


Por último, BotFather nos devolverá el token para utilizar nuestro BOT mediante la API.


Podemos configurar muchas más cosas para nuestro bot, aquí os dejo una lista pero no es lo único que hay, para más información os recomiendo leer la documentación oficial.

/setname - cambia el nombre de tu bot.

/setdescription - cambia la descripción del bot, un texto corto de hasta 512 caracteres, que describe tu bot. Los usuarios verán este texto al comienzo de la conversación con el bot, titulado '¿Qué puede hacer este robot?'.

/setabouttext - cambia la información sobre el bot, un texto aún más corto de hasta 120 caracteres. Los usuarios verán este texto en la página de perfil del robot. Cuando comparten tu bot con alguien, este texto se envía junto con el enlace.

/setuserpic - cambia las imágenes de perfil del bot. Siempre es bueno ponerle cara a un nombre.

/setcommands - cambia la lista de comandos soportados por tu bot. Los usuarios verán estos comandos como sugerencias cuando escriban / en el chat con su bot. Cada comando tiene un nombre (debe comenzar con una barra inclinada '/', caracteres alfanuméricos y subrayados, no más de 32 caracteres, sin mayúsculas y minúsculas), parámetros y una descripción de texto. Los usuarios verán la lista de comandos cada vez que escriban '/' en una conversación con su bot.

/deletebot - borra tu bot y libera su nombre de usuario.

/setinline: activa el modo en línea para tu bot.

/setinlinegeo: solicita datos de ubicación para proporcionar resultados en línea basados ​​en la ubicación.

/setjoingroups - alterna si tu bot se puede agregar a grupos o no. Cualquier bot debe ser capaz de procesar mensajes privados, pero si tu bot no fue diseñado para trabajar en grupos, puedes inhabilitarlo.

/setprivacy: establece qué mensajes recibirá tu bot cuando se agreguen a un grupo. Con el modo de privacidad desactivado, el bot recibirá todos los mensajes. Recomendamos dejar el modo de privacidad habilitado.

Para que un BOT pueda enviar mensajes a un usuario, éste deberá haberlo iniciado anteriormente, para ello, accedemos a nuestro bot buscándolo por su nombre (con @ delante) o bien utilizando el link que BotFather nos ha proporcionado (No tienes permitido ver enlaces. Registrate o Entra a tu cuenta)



Finalmente nuestro bot luce así.


Y hasta aquí la primera parte, en unos días publicaré la segunda parte donde aprenderemos a interactuar con nuestro BOT.

Un saludo.





Buenos dias,

soy nuevo haciendo bots, he escrito las lineas para crear el logo pero no se como se mira dicho log. ¿donde se crea el fichero? ¿como puedo mirarlo?

Gracias

import logging

# Enable logging
#Establecemos el logeo
logging.basicConfig(filename='./log.log',filemode='a',format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',level=logging.INFO)
logger = logging.getLogger(__name__)

def start(update, context):
    """Send a message when the command /start is issued."""
    update.message.reply_text('Bienvenidos al Scape de Joao')
    No tienes permitido ver enlaces. Registrate o Entra a tu cuenta("Msg de %s - %s",bot,update) #Loggeamos la informacion

def error(update, context):
    """Log Errors caused by Updates."""
    logger.warning('Update "%s" caused error "%s"', update, context.error)


    dp.add_error_handler(error)