wwappie
Documentação / v1

Conecte sua integração.

A autenticação de pessoas e a transferência de arquivos usam HTTP. Comandos, consultas e eventos de mensagens usam WebSocket. Os clientes Go e web no repositório implementam também a abertura das chaves e do conteúdo cifrado.

1. Prepare os acessos

  1. Entre no console com seu convite e crie sua conta. Guarde o código de recuperação.
  2. Pareie um número de teste. Conceda a chave do arquivo somente às contas que devem ler o histórico.
  3. Para uma integração com leitura, gere um par de chaves com wsctl service-key, cadastre a chave pública usando um convite de serviço e conceda acesso ao número.
  4. Crie um token com o escopo necessário. Selecione a conta de serviço da integração e configure suas permissões por número.

O token aparece uma única vez. Guarde-o no armazenamento de segredos do seu sistema. Não coloque tokens em URLs, repositórios ou código público do navegador.

2. Abra o WebSocket

wss://api.wappie.thehappie.co/v1/ws

O primeiro frame é hello. Use api_key para integrações ou session para uma sessão de pessoa. O servidor responde welcome antes dos demais comandos.

{"t":"hello","r":"connect","p":{"api_key":"SEU_TOKEN"}}
{"t":"devices.list","r":"numbers","p":{}}
{"t":"subscribe","r":"events","p":{"live_only":true}}

t identifica o comando; r correlaciona a resposta; p contém os parâmetros. Use um identificador diferente por solicitação. Eventos espontâneos não precisam de r.

Para recuperar eventos, use since_seq com a última sequência processada. Trate os frames replay.begin, replay.end e lag; se houver atraso ou desconexão, retome a partir do último evento confirmado pela sua aplicação.

OperaçãoComandosRequisito
Descobrir númerosdevices.list, device.infoUm acesso ao número
Consultar mensagenschats.list, chat.page, message.get, message.historyLeitura e chave concedida
Acompanhar eventossubscribeLeitura dos números assinados
Enviarmessage.send, message.send.media, message.reactEnvio
Administrar aparelhodevice.stop, device.mode, history.backfillGerenciamento
Gerenciar tokensapikeys.list, apikeys.create, apikeys.revokePessoa proprietária ou administradora

Referência completa dos tipos, parâmetros e respostas (TypeScript) · Contrato Go

Erros e reconexão

{"t":"error","r":"request-id","p":{"code":"not_authorized","message":"..."}}

Uma revogação, expiração ou alteração de acesso pode encerrar a conexão com código 1008. Atualize a autenticação e as permissões antes de reconectar. Use espera progressiva entre tentativas e não repita automaticamente envios cujo resultado seja desconhecido.

3. Use os endpoints HTTP

Base: https://api.wappie.thehappie.co. Operações autenticadas recebem Authorization: Bearer TOKEN. As rotas de gestão exigem sessão de pessoa; uma chave de API não administra usuários.

MétodoCaminhoFinalidade
POST/v1/auth/challenge, /v1/auth/loginObter os parâmetros de derivação e iniciar sessão
POST/v1/auth/signupCriar conta com convite e chaves geradas no cliente
GET/v1/auth/meConta e concessões cifradas
GET/v1/auth/workspacesEmpresas da identidade
POST/v1/auth/workspaces/sessionNova sessão no espaço indicado por tenant_id
POST/v1/auth/workspaces/accept-inviteAceitar um invite com conta existente
GET / PUT/v1/auth/workspaces/members / members/{userID}Listar e alterar papel e status
POST/v1/auth/workspaces/invitesConvite com email e role
GET / PUT/v1/auth/workspaces/devices/{deviceID}/permissionsPermissões de leitura, envio e gerenciamento
GET/v1/auth/workspaces/capacityVagas configuradas e ocupadas
GET/v1/media/{uid}Bytes cifrados de um anexo autorizado
POST/v1/upload?device=UUID&type=imagePreparar um anexo para envio; consulte o contrato de upload

Contratos de gestão, exemplos e códigos HTTP · Cliente de autenticação e criptografia · Contrato de upload

4. Entenda as permissões

Uma identidade pode participar de várias empresas. Os papéis, números, permissões e tokens ficam no espaço. Proprietários e administradores gerenciam aparelhos; esse papel, sozinho, não libera conversas.

Leitura exige permissão e chave concedida. Envio pode ser autorizado sem leitura. Os escopos de token read, send e full são limites cumulativos; quando o token age como uma conta de serviço, as permissões independentes dessa conta restringem cada número.

Tokens legados sem conta de serviço podem acessar conteúdo cifrado do espaço conforme o escopo. Prefira contas de serviço para restringir integrações por número. Remover a concessão impede novos acessos, mas não apaga chaves ou mensagens que alguém já baixou.

Hospedar você mesmo

O repositório inclui servidor Go, CLI, cliente Vue e instruções para PostgreSQL 18. A administração básica funciona sem o módulo comercial. A hospedagem oficial usa quatro endereços; uma instalação própria pode servir o cliente e a API na mesma origem.

Abrir guia de instalação →