Documentazione dell'API del server Loomio
/api/b3 serve per le operazioni a livello di server. Usa /api/b2 per le operazioni eseguite tramite un account utente Loomio.
Autenticazione
Imposta B3_API_KEY su un valore segreto di più di 16 caratteri.
Invia la chiave come bearer token:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Invia le credenziali solo nell'header Authorization. Le chiavi API nelle stringhe di query o nel corpo delle richieste vengono rifiutate.
Oggetto utente
Le risposte relative agli utenti hanno questa struttura:
{
"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"
}
]
}
Elencare gli utenti
Elenca tutti gli account utente dell'installazione Loomio.
GET /api/b3/users
Esempio
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Restituisce:
{
"users": []
}
Visualizzare un utente
Trova un utente tramite il suo ID utente Loomio o la sua identità esterna.
GET /api/b3/users/:id
GET /api/b3/users/identity/:identity_type/:uid
Esempi
Tramite ID utente Loomio:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123
Tramite identità esterna:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123
Restituisce:
{
"user": {}
}
Aggiornare un utente
Aggiorna i campi del profilo di un utente trovato tramite il suo ID utente Loomio o la sua identità esterna.
PATCH /api/b3/users/:id
PATCH /api/b3/users/identity/:identity_type/:uid
Parametri
| Campo | Descrizione |
|---|---|
name |
Nome visualizzato |
username |
Nome utente Loomio |
email |
Indirizzo email |
Esempi
Tramite ID utente 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
Tramite identità esterna:
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
Restituisce l'utente aggiornato:
{
"user": {}
}
Disattivare un utente
Disattiva un account utente trovato tramite il suo ID utente Loomio o la sua identità esterna.
POST /api/b3/users/:id/deactivate
POST /api/b3/users/identity/:identity_type/:uid/deactivate
Esempi
Tramite ID utente Loomio:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/deactivate
Tramite identità esterna:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/deactivate
Restituisce:
{
"success": true,
"user": {}
}
Riattivare un utente
Riattiva un account utente disattivato trovato tramite il suo ID utente Loomio o la sua identità esterna.
POST /api/b3/users/:id/reactivate
POST /api/b3/users/identity/:identity_type/:uid/reactivate
Esempi
Tramite ID utente Loomio:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/reactivate
Tramite identità esterna:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/reactivate
Restituisce:
{
"success": true,
"user": {}
}
Rimuovere i dati personali di un utente
La rimozione dei dati personali conserva i commenti e gli altri contenuti creati dall'utente nei suoi gruppi, ma elimina le informazioni personali note che possono identificarlo, come nome, biografia, foto del profilo, indirizzo email, credenziali di accesso, identità e sessioni attive.
È il metodo consigliato per rimuovere un utente da Loomio.
POST /api/b3/users/:id/redact
POST /api/b3/users/identity/:identity_type/:uid/redact
Esempi
Tramite ID utente Loomio:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/redact
Tramite identità esterna:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/redact
Restituisce:
{
"success": true
}
Eliminare un utente
L'eliminazione rimuove l'utente e i contenuti che ha creato. I commenti vengono rimossi dalle discussioni e i voti dai sondaggi. Anche i gruppi, le discussioni, i sondaggi e altri contenuti creati dall'utente possono essere eliminati tramite le associazioni del database.
Questa operazione può eliminare molti contenuti. Ti consigliamo di oscurare i dati personali dell'utente.
DELETE /api/b3/users/:id
DELETE /api/b3/users/identity/:identity_type/:uid
Esempi
Tramite ID utente Loomio:
curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123
Tramite identità esterna:
curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123
Restituisce:
{
"success": true
}
Impostazioni di sincronizzazione del profilo SSO
Usa queste impostazioni quando un altro sistema gestisce i campi del profilo Loomio.
LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1
LOOMIO_DISABLE_EDIT_USER_PROFILE=1 impedisce agli utenti di modificare direttamente questi campi:
| Campo | Note |
|---|---|
name |
Gestito dalla sincronizzazione esterna |
username |
Gestito dalla sincronizzazione esterna |
email |
Gestito dalla sincronizzazione esterna |
avatar_kind / uploaded_avatar |
Gestito dalla sincronizzazione esterna |
Gli utenti possono comunque modificare i campi gestiti in Loomio, come short_bio e location.
LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 aggiorna name e email con i dati di accesso SSO. Lascialo commentato o non impostato se uno script di sincronizzazione esterno deve essere l'unica fonte di questi aggiornamenti.
LOOMIO_SSO_FORCE_USER_ATTRS funziona ancora nelle installazioni esistenti. Impedisce agli utenti di modificare il profilo e aggiorna name e email all'accesso tramite SSO.