¿Cómo cambiar el titulo custom de admin de un usuario mediante un bot?

Explicación de uso para bot de Telegram escrito en NodeJS, pero se puede aplicar la lógica en cualquier lenguaje de programación

¿Cómo cambiar el titulo custom de admin de un usuario mediante un bot?

El 31 de diciembre del 2018 con el lanzamiento de la Telegram Bot Api v4.5 se añadio el soporte para el método setChatAdministratorCustomTitle, con este método podemos establecer un nombre custom para cada administrador del grupo.

⚠️ Importante: Este método solo funciona si fue el bot quien promovio al usuario a administrador. El bot no puede cambiar nunca el titulo custom del creador del grupo.

¿Cómo promover a un usuario a administrador?

Para poder promover a un usuario a administrador usando un bot, primeramente tiene que tener el permiso de poder añadir a nuevos administradores. Para ello simplemente tenemos que tenerlo metido en un canal o grupo como administrador.

El método promoteChatMember se compone de 3 parámetros:

  • chat_id: id del grupo/canal donde se encuentra el usuario que queremos convertir en administrador.
  • user_id: id del usuario que queremos convertir en administrador.
  • perms: Objeto que contiene una serie de propiedades que son los permisos y se les asigna un valor true o false dependiendo de si queremos dar ese permiso o no.

Lista de principales permisos:

  • can_change_info: Permitir o no que el nuevo administrador pueda cambiar o no la información del grupo. Eso incluye la foto de perfil, el titulo del chat y otros ajustes como los permisos del grupo.
  • can_post_messages: Solo para canales, para permitirle o no publicar.
  • can_edit_messages: Solo para canales, para permitirle o no editar mensajes.
  • can_delete_messages: Permitir o no borrar mensajes de otros usuario.
  • can_invite_users: Permitir o no que pueda añadir manualmente a nuevos miembros al grupo.
  • can_restrict_members: Permitir o no banear, desbanear o restringir a miembros del grupo.
  • can_pin_messages: Permitir o no que pueda anclar mensajes.
  • can_promote_members: Permitir o no que pueda convertir a nuevos miembros en administradores.

En el objeto perms declaramos los permisos que queremos darle, realmente si algún permiso no le das valor se tomará como false por defecto. Prestar atención y no mezcléis los permisos que son exclusivos de los canales con los grupos.

Ejemplo de uso: En este ejemplo respondemos al mensaje de un usuario de un grupo con el comando /admin y lo convertimos en administrador del grupo pero solo le damos el permiso de cambiar la información del grupo y invitar a nuevos usuarios.

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

var chatId = msg.chat.id;
var userId = msg.reply_to_message.from.id; // ID del usuario al que respondemos al mensaje

// Objecto con los permisos
const perms = {
    can_change_info : true,
    can_invite_users : true
}
  
bot.promoteChatMember(chat_id, user_id, perms);
});

Cambiando el título de administrador

Para cambiar el nombre del administrador tenemos que usar el método setChatAdministratorCustomTitle, este método recibe 3 parametros que son el id del chat, el id del usuario y una String con el texto custom que le podemos poner.

En este ejemplo teneis que responder a un mensaje de un usuario del grupo que sea administrador y que fuera promovido por el bot para cambiar su etiqueta de "administrador" por la de "El Banhammer" usando el comando /custom.

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

var chatId = msg.chat.id;
var userId = msg.reply_to_message.from.id; // ID del usuario al que respondemos mediante un mensaje con el comando

bot.setChatAdministratorCustomTitle(chat_id, user_id, "El Banhammer");
});

⚠️Importante: No puede tener más de 16 caracteres ni se pueden usar emogis

Espero que este tutorial os ayudará con vuestras dudas de como usar estos dos métodos en vuestro bot de Telegram en NodeJS. Nos veremos en próximos post sobre bots para seguir ampliando la guía.