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.