Documentação da API do servidor Loomio
/api/b3 serve para operações no nível do servidor. Use /api/b2 para ações voltadas ao usuário, realizadas com 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 somente no cabeçalho Authorization. Chaves de API em strings de consulta ou no corpo das requisições são rejeitadas.
Objeto de usuário
As respostas de usuário usam 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ário 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": []
}
Exibir usuário
Encontre um usuário pelo seu ID de usuário do Loomio ou pela sua 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 seu ID de usuário do Loomio ou pela sua 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 seu ID de usuário do Loomio ou pela sua 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 localizada 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 do usuário e outros conteúdos criados por ele em seus grupos, mas remove informações conhecidas que permitem identificá-lo, como nome, biografia, foto de perfil, endereço de e-mail, credenciais de acesso, identidades e sessões ativas.
Esta é 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 das conversas, 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 de associações no banco de dados.
Esta operação é muito destrutiva. É altamente recomendável optar pela remoção de dados pessoais.
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 via SSO
Use estas configurações quando outro sistema gerenciar os campos de perfil do Loomio.
LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1
LOOMIO_DISABLE_EDIT_USER_PROFILE=1 impede que os próprios 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 via SSO. Deixe essa variável comentada ou sem definir quando um script de sincronização externa deve ser a única fonte dessas atualizações.
LOOMIO_SSO_FORCE_USER_ATTRS continua funcionando em instalações existentes. Essa variável impede as edições pelos usuários e atualiza name e email no login via SSO.