Documentação da API do servidor Loomio

/api/b3 é usada para operações no nível do servidor. Use /api/b2 para ações realizadas por meio de uma conta de usuário do Loomio.

Autenticação

Defina B3_API_KEY como um segredo com mais de 16 caracteres.

Envie a chave como um token Bearer:

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

Envie as credenciais apenas no cabeçalho Authorization. Chaves de API enviadas na string de consulta ou no corpo da requisição são rejeitadas.

Objeto de usuário

As respostas de usuário têm esta estrutura:

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

Listar usuários

Liste todas as contas de usuários da instalação do Loomio.

GET /api/b3/users

Exemplo

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

Retorna:

{
  "users": []
}

Consultar usuário

Encontre um usuário pelo ID de usuário do Loomio ou pela identidade externa.

GET /api/b3/users/:id

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

Exemplos

Pelo ID de usuário do Loomio:

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

Pela identidade externa:

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

Retorna:

{
  "user": {}
}

Atualizar usuário

Atualize os campos do perfil de um usuário encontrado pelo ID de usuário do Loomio ou pela identidade externa.

PATCH /api/b3/users/:id

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

Parâmetros

Campo Descrição
name Nome de exibição
username Nome de usuário do Loomio
email Endereço de e-mail

Exemplos

Pelo ID de usuário do 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

Pela identidade externa:

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

Retorna o usuário atualizado:

{
  "user": {}
}

Desativar usuário

Desative uma conta de usuário encontrada pelo ID de usuário do Loomio ou pela identidade externa.

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

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

Exemplos

Pelo ID de usuário do Loomio:

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

Pela identidade externa:

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

Retorna:

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

Reativar usuário

Reative uma conta de usuário desativada encontrada pelo ID de usuário do Loomio ou pela identidade externa.

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

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

Exemplos

Pelo ID de usuário do Loomio:

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

Pela identidade externa:

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

Retorna:

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

Remover dados pessoais do usuário

A remoção de dados pessoais mantém os comentários e outros conteúdos criados pelo usuário nos grupos dos quais participa, mas remove informações pessoais conhecidas, como nome, biografia, foto de perfil, endereço de e-mail, credenciais de acesso, identidades e sessões ativas.

Essa é a forma recomendada de remover um usuário do Loomio.

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

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

Exemplos

Pelo ID de usuário do Loomio:

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

Pela identidade externa:

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

Retorna:

{
  "success": true
}

Excluir usuário

A exclusão remove o usuário e os registros que ele criou. Os comentários são removidos dos tópicos, os votos são removidos das enquetes e grupos, discussões, enquetes e outros registros criados pelo usuário também podem ser excluídos por meio das associações do banco de dados.

Essa ação é muito destrutiva. Recomenda-se a remoção dos dados pessoais do usuário.

DELETE /api/b3/users/:id

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

Exemplos

Pelo ID de usuário do Loomio:

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

Pela identidade externa:

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

Retorna:

{
  "success": true
}

Configurações de sincronização de perfil por SSO

Use estas configurações quando outro sistema gerenciar os campos do perfil no Loomio.

LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1

LOOMIO_DISABLE_EDIT_USER_PROFILE=1 impede que os usuários editem estes campos:

Campo Observações
name Gerenciado por sincronização externa
username Gerenciado por sincronização externa
email Gerenciado por sincronização externa
avatar_kind / uploaded_avatar Gerenciado por sincronização externa

Os usuários ainda podem editar campos locais do Loomio, como short_bio e location.

LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 atualiza name e email com os dados de login do SSO. Deixe a linha comentada ou não defina essa variável quando um script de sincronização externa precisar ser a única fonte dessas atualizações.

LOOMIO_SSO_FORCE_USER_ATTRS continua funcionando nas instalações existentes. Essa variável impede que os usuários editem o perfil e atualiza name e email no login por SSO.