Member
Member conecta tu flujo con Discord a través de tu bot para gestionar las personas y los roles de un servidor: ver quién forma parte del servidor y qué roles tiene cada uno, consultar los roles existentes, crear o eliminar un rol, y dar o quitar un rol a un miembro.
Los roles de Discord deciden qué puede ver y hacer cada persona en el servidor. Gestionarlos desde un flujo te permite, por ejemplo, dar acceso a los canales de clientes a quien acaba de comprar o retirarlo a quien se da de baja.
Cuándo usarlo
- Dar el rol de cliente a una persona en cuanto completa su compra.
- Quitar el rol de suscriptor a quien cancela su suscripción.
- Crear un rol para cada nuevo grupo de formación.
- Obtener la lista de miembros del servidor y sus roles para un informe.
- Eliminar los roles de grupos que ya han terminado.
Configuración
Necesitas una credencial Discord API con el Public Key, el Application ID y el Bot Token de tu aplicación, que encuentras en el Discord Developer Portal. Para gestionar roles, el bot necesita el permiso de gestionar roles en el servidor, y su rol tiene que estar por encima de los roles que asigna. Para listar los miembros, activa la opción Server Members Intent del bot en el Discord Developer Portal. Consulta Credenciales.
En Discord, los servidores se llaman también guilds: por eso los campos hablan de Guild ID.
| Campo | Qué hace |
|---|---|
| Credential (obligatorio) | La credencial Discord API de tu bot. |
| Operation (obligatorio) | Lo que hace el componente. Ver Operaciones. |
| Guild ID (obligatorio) | El identificador del servidor de Discord. Lo encuentras en el resultado de Get Guilds del componente Channel. |
| User ID | Solo en Add Roles to Member y Remove Roles from Member. El identificador de la persona. Lo encuentras en el resultado de Get Guild Members. |
| Filter | Solo en Get Guild Roles. All Roles trae todos los roles del servidor; By Role ID trae uno concreto. Por defecto, All Roles. |
| Role ID | El identificador del rol. Obligatorio en Add Roles to Member, Remove Roles from Member, Delete Roles y en Get Guild Roles con By Role ID. Lo encuentras en el resultado de Get Guild Roles. |
| Role Name | Solo en Create Role. El nombre del rol nuevo. |
| Role Options | Solo en Create Role, opcional. Ajustes de Discord para el rol, como su color (color), si se muestra aparte en la lista de miembros (hoist), si se puede mencionar (mentionable) o sus permisos (permissions). |
Operaciones
| Operación | Qué hace |
|---|---|
Get Guild Members | Trae todos los miembros del servidor. |
Add Roles to Member | Da un rol a un miembro. |
Remove Roles from Member | Quita un rol a un miembro. |
Get Guild Roles | Trae los roles del servidor o un rol concreto. |
Create Role | Crea un rol nuevo en el servidor. |
Delete Roles | Elimina un rol del servidor. Discord se lo quita a todos los miembros que lo tenían. |
Resultado
La salida Data devuelve los miembros o roles con los que has trabajado. Cada miembro trae su identificador (id), su nombre de usuario (username), su nombre visible (global_name), su apodo en el servidor (nick), la fecha en que se unió (joined_at) y los identificadores de sus roles (roles). Cada rol trae su identificador (id), nombre, posición y permisos. Las operaciones que dan, quitan o eliminan roles devuelven una confirmación.
Si Discord rechaza la operación, por ejemplo porque el bot no tiene permisos, el resultado trae status con el valor error y el motivo, en lugar de detener el flujo.
El componente también se puede conectar a un Agente como herramienta. Ver Tool Mode.
Ejemplo
Una academia da acceso a los canales de alumnos a cada persona que se matricula.
- La matrícula llega al flujo con el identificador de Discord del alumno.
- Añade Member con la operación
Add Roles to Member. - En Guild ID, pega el identificador del servidor de la academia; en User ID, el del alumno; en Role ID, el del rol
Alumno. - Conecta el resultado a Message para dar la bienvenida al alumno en el canal de presentaciones.
Buenas prácticas
- Obtén una vez los identificadores de tus roles con
Get Guild Rolesy guárdalos para usarlos en tus flujos. Get Guild Memberstrae a todos los miembros del servidor. En servidores muy grandes, tarda más.