Documentazione delle API del server Loomio
/api/b3 serve per le operazioni a livello di server. Usa /api/b2 per le azioni eseguite con un account utente Loomio.
Autenticazione
Imposta B3_API_KEY su un valore segreto di oltre 16 caratteri.
Invia la chiave come token bearer:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Invia le credenziali solo nell'intestazione Authorization. Le chiavi API nelle stringhe di query o nei corpi delle richieste vengono rifiutate.
Oggetto utente
Le risposte relative agli utenti usano 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"
}
]
}
Elenca 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": []
}
Mostra 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": {}
}
Aggiorna 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": {}
}
Disattiva 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": {}
}
Riattiva utente
Riattiva un account utente disattivato individuato 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": {}
}
Rimuovi i dati personali dell'utente
La rimozione dei dati personali conserva i commenti dell'utente e gli altri contenuti che ha creato nei suoi gruppi, ma rimuove le informazioni identificative personali note, come nome, biografia, foto del profilo, indirizzo email, credenziali di accesso, identità e sessioni attive.
Questo è 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
}
Elimina utente
L'eliminazione rimuove l'utente e i record che ha creato. I commenti vengono rimossi dalle conversazioni, i voti vengono rimossi dai sondaggi e anche i gruppi, le discussioni, i sondaggi e gli altri record creati dall'utente possono essere eliminati tramite le associazioni del database.
Questa operazione è molto distruttiva. È fortemente consigliato usare invece la rimozione dei dati personali.
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 autonomamente 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 locali di Loomio, come short_bio e location.
LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 aggiorna name ed email usando i dati di accesso SSO. Lascia questa impostazione commentata o non impostata quando uno script di sincronizzazione esterna deve essere l'unica fonte di questi aggiornamenti.
LOOMIO_SSO_FORCE_USER_ATTRS continua a funzionare per le installazioni esistenti. Impedisce le modifiche da parte degli utenti e aggiorna name ed email all'accesso tramite SSO.