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.
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);
});
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);
});
Borrado de mensajes simple con nuestro bot de Telegram escrito en nodejs pic.twitter.com/37v83i1Qui
— Tecnonucleous (@Tecnonucleous) 2 de diciembre de 2017
Borrar mensaje y comando que mandas
Borrado completo de mensajes y repuesta con nuestro bot de Telegram en Nodejs pic.twitter.com/KHytsK6bFh
— Tecnonucleous (@Tecnonucleous) 2 de diciembre de 2017
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);
});