Obtener id del chat o de un usuario y borrar mensajes de Telegram con nodejs

Obtener id del chat o de un usuario y borrar mensajes de Telegram con nodejs

Obtener tú id de tú grupo o cualquier otro donde esté el bot

Obtener el ID de los usuarios que utilizan nuestro bot puede resultar beneficioso para el creador del bot ya que de esta manera puede restringir el uso del bot a ciertas personas.

Diferencias entre Id privado e Id grupal

Las diferencias entre el Id privado y el Id grupal es que, además de actuar de forma individual, el ID privado es el ID real de nuestra cuenta de Telegram, mientras que el Id grupal es el ID del chat en que hacemos uso del comando.

Para crear los comandos utilizamos:

bot.onText(/^\/comando/, function(msg){});

Utilizamos bot.onText para indicar al bot que se trata de un comando y no de un evento de escucha, posteriormente, hemos nombrado a la función como msg.

Si hacemos uso del comando en un grupo, el bot devolverá el ID del chat, mientras que si lo hacemos de manera privada, el bot devolverá nuestra ID privada. No obstante, chatId también se encarga de verificar donde enviar el mensaje.

bot.onText(/^\/chatid/, (msg) => {
    const chatId = msg.chat.id;
    bot.sendMessage(chatId, "El id de este chat es: " + chatId);  
});

Como podemos observar en el código, hemos fijado una constante que se encarga de recoger el id del chat donde se está realizando la petición. Posteriormente, hemos establecido que si se utiliza el comando, envie un mensaje con bot.sendMessage(chatId) indicando El id de este chat es: + chatId, nombrando también la constante chatId que previamente habiamos declarado. Este mensaje se puede modificar al gusto de cualquiera.

chatid-telegram

Obtener tú id de usuario de Telegram

 bot.onText(/^\/myid/, (msg) => {
     const chatId = msg.chat.id;
     const myId = msg.from.id;
     bot.sendMessage(chatId, "Tu id es: " + myId);  
 });

id-usurio-telegram

Borrar mensajes

Borras los mensajes a los que respondes con el comando "borrar", pero no el mensaje que generamos al hacer uso del comando.

 bot.onText(/^\/borrar/, (msg) => {
     var chatId = msg.chat.id;
     var messageId = msg.message_id;
     
     if (msg.reply_to_message == undefined){
         return; 
     }
     
     bot.deleteMessage(chatId, messageId);
 });

Borrar mensaje y comando que mandas

 bot.onText(/^\/borratodo/, (msg) => {
     var chatId = msg.chat.id;
     var messageId = msg.message_id;
     var replyMessage = msg.reply_to_message.message_id;
     
     if (msg.reply_to_message == undefined){
         return;
     }
     
     bot.deleteMessage(chatId, messageId);
     bot.deleteMessage(chatId, replyMessage);
 });