Tutoriales

Bot Telegram NodeJS – Creando comando ID y !Ping-Pong!

Como comentamos en el post anterior, “Cómo crear tu bot de Telegram en NodeJS”, hoy pasaremos a crear el comando ID y el comando !Ping – Pong! para nuestro bot. Estos dos comandos nos servirán por una parte, para conocer el nuestro ID y por otra parte para hacer saber a los usuarios que nuestro bot sigue ‘online’.

De alguna manera estos dos comandos, aunque parezcan que no valen la pena, resultan muy útiles, ya no solo para realizar la acción en Telegram, sino para empezar a plantearte cuestiones respecto al código, es decir, empezar a crear tus propios fragmentos de código.

Como ya hicimos anteriormente, escribiré los fragmentos de código realizando una acción y posteriormente explicaré más a fondo el concepto del código. En mi opinión, cuando te vayas familiarizando con la API, ya empezarás a crear tus comandos sin ayuda y empezarás a entender que todo, en lo que a programación se refiere, tiene una acción/reacción.

Creando comandos para nuestro bot.

Comando ID.

El comando ID puede resultar útil para conocer la ID de los usuarios que utilizan nuestro bot e incluso de un usuario específico en un grupo. Este dato también se puede utilizar para filtrar/restringir el uso del comando a un usuario en concreto.

Para crear este comando, se utiliza:

bot.onText(/^\/id, function(msg){

Utilizamos el uso de bot.onText porque estamos creando un comando. Hemos creado una función que se encarga de recoger el mensaje.

Posteriormente, fijamos 1 variable:

var chatId = msg.chat.id

Como dato, al hacer uso del comando en grupos, nos devolverá el ID del grupo, en caso de ser de manera privada, nos devolverá nuestra ID real. A continuación, haremos que el bot nos envié un mensaje con el dato que estamos solicitando. Dicho mensaje se puede modificar como se quiera.

Enviamos el mensaje así:

bot.sendMessage(chatId, 'Tu Id es: ' + chatId);

Especificamos el chat donde se envía con chatId , el mensaje lo tendremos que ir concatenando de la siguiente manera 'texto' + variable

En definitiva, quedaría algo así:

bot.onText(/^\/id/, function(msg){
var chatId = msg.chat.id;
bot.sendMessage(chatId, 'Tu Id es: ' + chatId);
});

diferencias-via-bot-via-grupo

Si hacemos uso del comando en un grupo, nos devolverá un mensaje similar a éste:

Tu Id es: -10039998569

De manera que si le enviamos el comando de manera privada al bot, nos devolverá un mensaje similar a éste:

Tu Id es: 36958546

Diferencias entre ID privado e ID grupal.

La diferencia entre el ID privado y el grupal es:

  • El ID privado es el ID real de nuestra cuenta de Telegram.
  • El ID grupal es el ID del chat en el que hacemos uso del comando.

Comando !Ping – Pong!

El siguiente comando es muy simple de realizar. No obstante se le pueden dar otras funcionalidades utilizando condiciones.

Podemos hacer que el bot responda una cosa u otra en función de si se le habla de manera privada o en un grupo. Esta condición es aplicable a otros comandos, solamente es saber aplicarlos de manera correcta.

Empezaremos creando el comando con:

bot.onText(/^\!ping/, function(msg){

En este caso, utilizaremos la condición de que si la petición del comando viene de un supergrupo, envié un mensaje determinado y si lo hace de manera privada, que envié Pong!. Para ello, utilizaremos If y Else if.

Los if se encargan de verificar una vez la condición, si ésta es verdadera realiza una acción, en caso de ser falsa nos devolverá error o bien, no hará nada. Else if vendría a ser, en pocas palabras, una segunda posibilidad.

Dicho esto, comenzaremos fijando primero una variable para almacenar el tipo de chat, otra para almacenar el chat donde se requiere el comando seguido del if y else if:

bot.onText(/^\!ping/, function(msg){

var TypeChat = msg.chat.type;
var chatId = msg.chat.id;

if (TypeChat == 'supergroup'){
bot.sendMessage(chatId, 'Este es un mensaje genérico.');
}
else if (TypeChat == 'private'){
bot.sendMessage(chatId, 'Pong!');
};
});

diferencias-via-bot-via-grupo

Estamos condicionando que si el tipo de chat es un supergrupo, que envíe al chat donde se requiera el comando,en este caso un supergrupo, ‘Este es un mensaje genérico’, mientras que si el tipo de chat es en privado, envía al chat donde se requiera el comando, en este caso en privado, ‘Pong!‘.

Poco a poco iremos añadiendo más funciones a nuestro bot. De momento, os dejo investigar un poco por vuestra cuenta para que os hagáis un poco con la API. Pronto crearemos un grupo de Telegram para resolver posibles dudas y/o aportaciones de los usuarios.

¿Te gustó este artículo?

Únete a nuestro canal de Telegram para estar al tanto de todo nuestro contenido oficial y exclusivo .

Publicaciones relacionadas

Cerrar
Cerrar

Bloqueador de anuncios detectado

Por favor, considere ayudarnos desactivando su bloqueador de anuncios