Documentación de la API del servidor de Loomio
/api/b3 sirve para operaciones del servidor. Usa /api/b2 para las acciones que se realizan desde una cuenta de usuario de Loomio.
Autenticación
Configura B3_API_KEY con un valor secreto de más de 16 caracteres.
Envía la clave como token de portador:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Envía las credenciales solo en la cabecera Authorization. Se rechazan las claves de API incluidas en la cadena de consulta o en el cuerpo de la solicitud.
Objeto de usuario
Las respuestas de usuario tienen esta estructura:
{
"id": 123,
"name": "Ada Lovelace",
"username": "ada",
"email": "ada@example.org",
"active": true,
"deactivated_at": null,
"identities": [
{
"id": 456,
"identity_type": "oauth",
"uid": "external-123",
"email": "ada@example.org",
"name": "Ada Lovelace"
}
]
}
Listar usuarios
Lista todas las cuentas de usuario de la instalación de Loomio.
GET /api/b3/users
Ejemplo
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Devuelve:
{
"users": []
}
Consultar un usuario
Busca un usuario por su ID de usuario de Loomio o por su identidad externa.
GET /api/b3/users/:id
GET /api/b3/users/identity/:identity_type/:uid
Ejemplos
Por ID de usuario de Loomio:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123
Por identidad externa:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123
Devuelve:
{
"user": {}
}
Actualizar un usuario
Actualiza los campos del perfil de un usuario identificado por su ID de usuario de Loomio o por su identidad externa.
PATCH /api/b3/users/:id
PATCH /api/b3/users/identity/:identity_type/:uid
Parámetros
| Campo | Descripción |
|---|---|
name |
Nombre visible |
username |
Nombre de usuario de Loomio |
email |
Dirección de correo electrónico |
Ejemplos
Por ID de usuario de Loomio:
curl -X PATCH \
-H 'Authorization: Bearer YOUR_SERVER_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"user":{"name":"Ada Lovelace","username":"ada","email":"ada@example.org"}}' \
https://www.loomio.com/api/b3/users/123
Por identidad externa:
curl -X PATCH \
-H 'Authorization: Bearer YOUR_SERVER_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"user":{"name":"Ada Lovelace","username":"ada","email":"ada@example.org"}}' \
https://www.loomio.com/api/b3/users/identity/oauth/external-123
Devuelve el usuario actualizado:
{
"user": {}
}
Desactivar un usuario
Desactiva una cuenta de usuario identificada por su ID de usuario de Loomio o por su identidad externa.
POST /api/b3/users/:id/deactivate
POST /api/b3/users/identity/:identity_type/:uid/deactivate
Ejemplos
Por ID de usuario de Loomio:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/deactivate
Por identidad externa:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/deactivate
Devuelve:
{
"success": true,
"user": {}
}
Reactivar un usuario
Reactiva una cuenta de usuario desactivada identificada por su ID de usuario de Loomio o por su identidad externa.
POST /api/b3/users/:id/reactivate
POST /api/b3/users/identity/:identity_type/:uid/reactivate
Ejemplos
Por ID de usuario de Loomio:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/reactivate
Por identidad externa:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/reactivate
Devuelve:
{
"success": true,
"user": {}
}
Eliminar los datos personales de un usuario
Este proceso conserva los comentarios y otros contenidos creados por el usuario en sus grupos, pero elimina los datos personales conocidos que permiten identificarlo, como el nombre, la biografía, la foto de perfil, la dirección de correo electrónico, las credenciales de inicio de sesión, las identidades y las sesiones activas.
Este es el método recomendado para eliminar a un usuario de Loomio.
POST /api/b3/users/:id/redact
POST /api/b3/users/identity/:identity_type/:uid/redact
Ejemplos
Por ID de usuario de Loomio:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/redact
Por identidad externa:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/redact
Devuelve:
{
"success": true
}
Eliminar usuario
La eliminación borra al usuario y los registros que creó. Sus comentarios se eliminan de los hilos y sus votos, de los sondeos. Las asociaciones de la base de datos también pueden eliminar los grupos, las discusiones, los sondeos y otros registros que creó.
Esta acción tiene efectos muy destructivos. Se recomienda encarecidamente anonimizar al usuario en su lugar.
DELETE /api/b3/users/:id
DELETE /api/b3/users/identity/:identity_type/:uid
Ejemplos
Por ID de usuario de Loomio:
curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123
Por identidad externa:
curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123
Devuelve:
{
"success": true
}
Configuración de la sincronización del perfil mediante SSO
Usa esta configuración cuando otro sistema gestione los campos del perfil de Loomio.
LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1
LOOMIO_DISABLE_EDIT_USER_PROFILE=1 impide que los usuarios editen estos campos por sí mismos:
| Campo | Notas |
|---|---|
name |
Gestionado mediante sincronización externa |
username |
Gestionado mediante sincronización externa |
email |
Gestionado mediante sincronización externa |
avatar_kind / uploaded_avatar |
Gestionado mediante sincronización externa |
Los usuarios todavía pueden editar campos propios de Loomio, como short_bio y location.
LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 actualiza name y email con los datos de inicio de sesión mediante SSO. Deja la línea comentada o la variable sin definir si solo un script de sincronización externa debe actualizar esos campos.
LOOMIO_SSO_FORCE_USER_ATTRS sigue funcionando en las instalaciones existentes. Impide que los usuarios editen el perfil y actualiza name y email al iniciar sesión mediante SSO.