Documentación de la API del servidor de Loomio
/api/b3 sirve para operaciones a nivel del servidor. Usa /api/b2 para acciones orientadas al usuario realizadas mediante una cuenta de usuario de Loomio.
Autenticación
Establece B3_API_KEY como una clave secreta de más de 16 caracteres.
Envía la clave como un token de portador:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Envía las credenciales únicamente en la cabecera Authorization. Las claves de API en cadenas de consulta o cuerpos de solicitud se rechazan.
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": []
}
Mostrar un usuario
Busca un usuario por el ID de usuario de Loomio o la 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 localizado por el ID de usuario de Loomio o la 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 localizada por el ID de usuario de Loomio o la 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 localizada mediante el ID de usuario de Loomio o una 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
La eliminación de datos personales conserva los comentarios del usuario y otros contenidos que haya generado en los grupos a los que pertenece, pero elimina la información conocida que permite identificarlo, como el nombre, la biografía, la foto de perfil, la dirección de correo electrónico, las credenciales de acceso, las identidades y las sesiones activas.
Esta es la forma recomendada de eliminar 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 un usuario
La eliminación borra el usuario y los registros que haya creado. Los comentarios se eliminan de los hilos y los votos se eliminan de las encuestas. Los grupos, las discusiones, las encuestas y otros registros creados por el usuario también pueden eliminarse mediante las asociaciones de la base de datos.
Esta operación es muy destructiva. Se recomienda encarecidamente eliminar los datos personales 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
}
Ajustes de sincronización del perfil mediante SSO
Usa estos ajustes 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 |
Gestionados mediante sincronización externa |
Los usuarios pueden seguir editando campos locales de Loomio, como short_bio y location.
LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 actualiza name y email a partir de los datos de inicio de sesión mediante SSO. Déjalo comentado o sin definir cuando un script de sincronización externa deba ser la única fuente de esas actualizaciones.
LOOMIO_SSO_FORCE_USER_ATTRS sigue funcionando en las instalaciones existentes. Impide que los usuarios editen esos campos y actualiza name y email al iniciar sesión mediante SSO.