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.