Documentatie voor de Loomio Server-API

/api/b3 is bedoeld voor bewerkingen op serverniveau. Gebruik /api/b2 voor acties die je met een Loomio-gebruikersaccount uitvoert.

Authenticatie

Stel B3_API_KEY in op een geheime waarde van meer dan 16 tekens.

Verstuur de sleutel als bearer-token:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users

Verstuur inloggegevens alleen in de Authorization-header. API-sleutels in querystrings of aanvraagbody's worden geweigerd.

Gebruikersobject

Antwoorden met gebruikersgegevens hebben deze structuur:

{
  "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"
    }
  ]
}

Gebruikers opvragen

Vraag alle gebruikersaccounts op de Loomio-installatie op.

GET /api/b3/users

Voorbeeld

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users

Geeft terug:

{
  "users": []
}

Gebruiker opvragen

Zoek een gebruiker op basis van diens Loomio-gebruikers-ID of externe identiteit.

GET /api/b3/users/:id

GET /api/b3/users/identity/:identity_type/:uid

Voorbeelden

Op basis van Loomio-gebruikers-ID:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123

Op basis van externe identiteit:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123

Geeft terug:

{
  "user": {}
}

Gebruiker bijwerken

Werk de profielvelden bij van een gebruiker die je opzoekt met diens Loomio-gebruikers-ID of externe identiteit.

PATCH /api/b3/users/:id

PATCH /api/b3/users/identity/:identity_type/:uid

Parameters

Veld Beschrijving
name Weergavenaam
username Loomio-gebruikersnaam
email E-mailadres

Voorbeelden

Op basis van Loomio-gebruikers-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

Op basis van externe identiteit:

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

Geeft de bijgewerkte gebruiker terug:

{
  "user": {}
}

Gebruiker deactiveren

Deactiveer een gebruikersaccount op basis van het Loomio-gebruikers-ID of de externe identiteit.

POST /api/b3/users/:id/deactivate

POST /api/b3/users/identity/:identity_type/:uid/deactivate

Voorbeelden

Op basis van Loomio-gebruikers-ID:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/deactivate

Op basis van externe identiteit:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/deactivate

Geeft terug:

{
  "success": true,
  "user": {}
}

Gebruiker opnieuw activeren

Activeer een gedeactiveerd gebruikersaccount opnieuw op basis van het Loomio-gebruikers-ID of de externe identiteit.

POST /api/b3/users/:id/reactivate

POST /api/b3/users/identity/:identity_type/:uid/reactivate

Voorbeelden

Op basis van Loomio-gebruikers-ID:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/reactivate

Op basis van externe identiteit:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/reactivate

Geeft terug:

{
  "success": true,
  "user": {}
}

Gebruikersgegevens anonimiseren

Bij anonimisering blijven de reacties van de gebruiker en andere inhoud die diegene heeft gemaakt binnen diens groepen behouden. Bekende persoonsgegevens worden verwijderd, waaronder naam, biografie, profielfoto, e-mailadres, inloggegevens, identiteiten en actieve sessies.

Dit is de aanbevolen manier om een gebruiker uit Loomio te verwijderen.

POST /api/b3/users/:id/redact

POST /api/b3/users/identity/:identity_type/:uid/redact

Voorbeelden

Op basis van Loomio-gebruikers-ID:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/redact

Op basis van externe identiteit:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/redact

Geeft terug:

{
  "success": true
}

Gebruiker verwijderen

Bij verwijderen worden de gebruiker en de door die gebruiker aangemaakte gegevens gewist. Reacties verdwijnen uit threads en stemmen uit peilingen. Ook groepen, discussies, peilingen en andere gegevens die de gebruiker heeft aangemaakt, kunnen via databasekoppelingen worden verwijderd.

Dit heeft ingrijpende gevolgen. Anonimiseren wordt sterk aanbevolen als alternatief.

DELETE /api/b3/users/:id

DELETE /api/b3/users/identity/:identity_type/:uid

Voorbeelden

Op basis van Loomio-gebruikers-ID:

curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123

Op basis van externe identiteit:

curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123

Geeft terug:

{
  "success": true
}

Instellingen voor SSO-profielsynchronisatie

Gebruik deze instellingen als een ander systeem de profielvelden in Loomio beheert.

LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1

LOOMIO_DISABLE_EDIT_USER_PROFILE=1 voorkomt dat gebruikers deze velden zelf bewerken:

Veld Opmerkingen
name Beheerd via externe synchronisatie
username Beheerd via externe synchronisatie
email Beheerd via externe synchronisatie
avatar_kind / uploaded_avatar Beheerd via externe synchronisatie

Gebruikers kunnen velden die alleen in Loomio worden beheerd, zoals short_bio en location, nog steeds bewerken.

LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 werkt name en email bij met gegevens van de SSO-aanmelding. Laat de instelling als commentaar staan of stel haar niet in als alleen een extern synchronisatiescript deze velden mag bijwerken.

LOOMIO_SSO_FORCE_USER_ATTRS werkt nog steeds voor bestaande installaties. Deze instelling voorkomt dat gebruikers hun profiel bewerken en werkt name en email bij wanneer ze zich via SSO aanmelden.