Dokumentation der Loomio-Server-API
/api/b3 dient für Vorgänge auf Serverebene. Verwende /api/b2 für Aktionen, die über ein Loomio-Benutzerkonto ausgeführt werden.
Authentifizierung
Lege für B3_API_KEY einen geheimen Wert mit mehr als 16 Zeichen fest.
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 URL-Parametern 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"
}
]
}
Benutzer auflisten
Liste alle Benutzerkonten der Loomio-Installation auf.
GET /api/b3/users
Beispiel
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Antwort:
{
"users": []
}
Benutzer anzeigen
Finde einen Benutzer 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
Antwort:
{
"user": {}
}
Benutzer aktualisieren
Aktualisiere die Profilfelder eines Benutzers, den 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
Antwort mit dem aktualisierten Benutzer:
{
"user": {}
}
Benutzer deaktivieren
Deaktiviere ein Benutzerkonto anhand seiner Loomio-Benutzer-ID oder externen Identität.
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
Antwort:
{
"success": true,
"user": {}
}
Benutzer 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
Antwort:
{
"success": true,
"user": {}
}
Benutzerdaten anonymisieren
Bei der Anonymisierung bleiben die Kommentare und anderen Inhalte des Benutzers in seinen Gruppen erhalten. Bekannte personenbezogene Daten werden entfernt, darunter Name, Biografie, Profilfoto, E-Mail-Adresse, Anmeldedaten, Identitäten und aktive Sitzungen.
Dies ist die empfohlene Methode, um einen Benutzer 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
Antwort:
{
"success": true
}
Benutzerkonto löschen
Beim Löschen werden das Benutzerkonto und die von der Person erstellten Einträge entfernt. Kommentare werden aus Diskussionen und Stimmen aus Abstimmungen entfernt. Auch Gruppen, Diskussionen, Abstimmungen und andere von der Person erstellte Einträge können über Datenbankverknüpfungen gelöscht werden.
Dabei können viele Daten verloren gehen. Stattdessen wird dringend empfohlen, das Benutzerkonto zu anonymisieren.
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
Antwort:
{
"success": true
}
Einstellungen für den SSO-Profilabgleich
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 Nutzer diese Felder selbst bearbeiten:
| Feld | Hinweise |
|---|---|
name |
Wird durch externen Abgleich verwaltet |
username |
Wird durch externen Abgleich verwaltet |
email |
Wird durch externen Abgleich verwaltet |
avatar_kind / uploaded_avatar |
Wird durch externen Abgleich verwaltet |
Nutzer können weiterhin Felder bearbeiten, die nur in Loomio verwaltet werden, etwa short_bio und location.
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 nur ein externes Abgleichskript diese Felder aktualisieren soll.
LOOMIO_SSO_FORCE_USER_ATTRS funktioniert weiterhin bei bestehenden Installationen. Die Einstellung verhindert, dass Nutzer ihr Profil selbst bearbeiten, und aktualisiert name und email bei der SSO-Anmeldung.