Dokumentation der Loomio Server-API
/api/b3 ist für Vorgänge auf Serverebene vorgesehen. Nutze /api/b2 für Aktionen, die du mit einem Loomio-Benutzerkonto ausführst.
Authentifizierung
Setze B3_API_KEY auf einen geheimen Schlüssel mit mehr als 16 Zeichen.
Sende den Schlüssel als Bearer-Token:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Sende Zugangsdaten ausschließlich im Authorization-Header. API-Schlüssel in Abfragezeichenfolgen oder im Anfragetext werden abgelehnt.
Benutzerobjekt
Antworten mit Benutzerdaten haben diese Struktur:
{
"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"
}
]
}
Benutzerkonten auflisten
Liste alle Benutzerkonten auf der Loomio-Installation auf.
GET /api/b3/users
Beispiel
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Gibt zurück:
{
"users": []
}
Benutzerkonto anzeigen
Finde ein Benutzerkonto anhand seiner Loomio-Benutzer-ID oder externen Identität.
GET /api/b3/users/:id
GET /api/b3/users/identity/:identity_type/:uid
Beispiele
Anhand der Loomio-Benutzer-ID:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123
Anhand der externen Identität:
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123
Gibt zurück:
{
"user": {}
}
Benutzerkonto aktualisieren
Aktualisiere die Profilfelder eines Benutzerkontos, das du anhand seiner Loomio-Benutzer-ID oder externen Identität gefunden hast.
PATCH /api/b3/users/:id
PATCH /api/b3/users/identity/:identity_type/:uid
Parameter
| Feld | Beschreibung |
|---|---|
name |
Anzeigename |
username |
Loomio-Benutzername |
email |
E-Mail-Adresse |
Beispiele
Anhand der Loomio-Benutzer-ID:
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
Anhand der externen Identität:
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
Gibt das aktualisierte Benutzerkonto zurück:
{
"user": {}
}
Benutzerkonto deaktivieren
Deaktiviere ein Benutzerkonto, das du anhand seiner Loomio-Benutzer-ID oder externen Identität gefunden hast.
POST /api/b3/users/:id/deactivate
POST /api/b3/users/identity/:identity_type/:uid/deactivate
Beispiele
Anhand der Loomio-Benutzer-ID:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/deactivate
Anhand der externen Identität:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/deactivate
Gibt zurück:
{
"success": true,
"user": {}
}
Benutzerkonto reaktivieren
Reaktiviere ein deaktiviertes Benutzerkonto anhand seiner Loomio-Benutzer-ID oder externen Identität.
POST /api/b3/users/:id/reactivate
POST /api/b3/users/identity/:identity_type/:uid/reactivate
Beispiele
Anhand der Loomio-Benutzer-ID:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/reactivate
Anhand der externen Identität:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/reactivate
Rückgabe:
{
"success": true,
"user": {}
}
Personenbezogene Kontodaten entfernen
Dabei bleiben die Kommentare und andere von der Person erstellte Inhalte in ihren Gruppen erhalten. Bekannte personenbezogene Daten wie Name, Kurzbiografie, Profilfoto, E-Mail-Adresse, Anmeldedaten, Identitäten und aktive Sitzungen werden jedoch entfernt.
Dies ist die empfohlene Methode, um eine Person aus Loomio zu entfernen.
POST /api/b3/users/:id/redact
POST /api/b3/users/identity/:identity_type/:uid/redact
Beispiele
Anhand der Loomio-Benutzer-ID:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/redact
Anhand der externen Identität:
curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/redact
Rückgabe:
{
"success": true
}
Benutzerkonto löschen
Das Löschen entfernt das Benutzerkonto und die von der Person erstellten Datensätze. Kommentare werden aus Threads und Stimmen aus Abstimmungen entfernt. Gruppen, Diskussionen, Abstimmungen und andere von der Person erstellte Datensätze können durch Datenbankverknüpfungen ebenfalls gelöscht werden.
Dabei werden umfangreiche Daten gelöscht. Es wird dringend empfohlen, stattdessen die personenbezogenen Kontodaten zu entfernen.
DELETE /api/b3/users/:id
DELETE /api/b3/users/identity/:identity_type/:uid
Beispiele
Anhand der Loomio-Benutzer-ID:
curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123
Anhand der externen Identität:
curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123
Rückgabe:
{
"success": true
}
Einstellungen zur SSO-Profilsynchronisierung
Verwende diese Einstellungen, wenn ein anderes System die Loomio-Profilfelder verwaltet.
LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1
LOOMIO_DISABLE_EDIT_USER_PROFILE=1 verhindert, dass Personen diese Felder selbst bearbeiten:
| Feld | Hinweise |
|---|---|
name |
Durch externe Synchronisierung verwaltet |
username |
Durch externe Synchronisierung verwaltet |
email |
Durch externe Synchronisierung verwaltet |
avatar_kind / uploaded_avatar |
Durch externe Synchronisierung verwaltet |
Personen können weiterhin lokale Loomio-Felder wie short_bio und location bearbeiten.
LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 aktualisiert name und email anhand der SSO-Anmeldedaten. Lass die Zeile auskommentiert oder die Variable ungesetzt, wenn ausschließlich ein externes Synchronisierungsskript diese Aktualisierungen vornehmen soll.
LOOMIO_SSO_FORCE_USER_ATTRS funktioniert weiterhin für bestehende Installationen. Die Einstellung verhindert sowohl die Bearbeitung durch die Personen selbst als auch die Aktualisierung von name und email bei der SSO-Anmeldung.