API Keys e Integrações
API Keys e Integrações
Resumo
Esta área reúne a gestão de API Keys (chaves para acessar a API do P8W) e as conexões externas via OAuth do módulo Core Accounts (app/Core/Accounts/). Tabs relevantes no perfil: api, embed. Painel externo de conexões: /dashboard/accounts.
Para quem é (personas)
- Desenvolvedor integrando o P8W com sistemas próprios.
- Usuário conectando redes sociais, Google Drive, calendário, e-commerce.
- Admin configurando provedores OAuth em
/admin/accounts.
O que você pode fazer
API Keys (tab api)
A tab API (app/User/Views/profile/tabs/api.php) permite ao usuário:
- Visualizar documentação das APIs públicas.
- Listar chaves disponíveis (via controllers dedicados, quando o admin
habilita).
- Copiar token para uso em requisições.
Observação: vários endpoints de CRUD de API Keys (
listApiKeys,createApiKey,revokeApiKey,regenerateApiKey, etc.) estão documentados como "removidos em 2026-03-20" aguardando reativação no cabeçalho deapp/Core/Accounts/routes.php(parcial — ver roadmap).
Código Embed (tab embed)
Em app/User/Views/profile/tabs/embed.php, o usuário obtém snippets para incorporar widgets do P8W em sites externos (trackers, pixels, forms, chatbots, etc.).
Conexões Externas (OAuth)
Painel em /dashboard/accounts (Core Accounts):
- Listar conexões:
GET /api/accounts/connections. - Criar conexão:
POST /api/accounts/connections. - Editar/Remover:
/api/accounts/connections/{id}e
/api/accounts/connections/{id}/delete.
- Testar conexão:
POST /api/accounts/connections/{id}/test. - Sincronizar:
POST /api/accounts/connections/{id}/sync. - Refresh de token:
POST /api/accounts/connections/{id}/refresh.
OAuth fluxo:
- Autorizar:
GET /accounts/oauth/{provider}/authorize. - Callback:
GET /accounts/oauth/{provider}/callback. - Revogar:
POST /accounts/oauth/{provider}/revoke.
Calendar Sync
Conecte calendários Google, Apple e Microsoft em /api/calendar-sync/*:
- Listar contas, conectar, desconectar, sincronizar.
- CRUD de eventos bidirecional.
- OAuth callback:
/api/calendar-sync/callback.
Administração (/admin/accounts)
- Dashboard: lista de provedores e conexões globais.
- Settings: credenciais de OAuth por provider (clientid, clientsecret,
escopos).
- CRUD de providers:
GET/POST /admin/api/accounts/providers[/{id}][/toggle|/configure|/delete].
Webhooks
- Receber webhook:
POST /accounts/webhook/{connectionId}. - Verificar:
GET /accounts/webhook/{connectionId}/verify. - Testar:
POST /accounts/webhook/{connectionId}/test. - Retry de delivery:
POST /api/accounts/webhooks/{id}/deliveries/{deliveryId}/retry.
Como acessar
- API Keys:
/dashboard/profile?tab=api. - Embed:
/dashboard/profile?tab=embed. - Conexões OAuth:
/dashboard/accounts. - Admin Accounts:
/admin/accounts.
Tutoriais
Conectar minha conta do Google
Objetivo: Sincronizar calendário e contatos.
Passos:
- Em
/dashboard/accounts, clique em Adicionar conexão → Google. - Confirme escopos solicitados.
- Aprove no Google.
- Callback volta para
/accounts/oauth/google/callbackcom sucesso. - Conexão aparece na lista — teste com
/api/accounts/connections/{id}/test.
Obter meu embed code
Objetivo: Incorporar um widget no meu site.
Passos:
- Acesse
/dashboard/profile?tab=embed. - Copie o snippet exibido.
- Cole no
<head>ou<body>do seu site.
Conectar calendário Microsoft
Objetivo: Sincronizar eventos bidirecionais.
Passos:
- Solicite URL de auth:
GET /api/calendar-sync/auth-url?provider=microsoft. - Redirecione usuário.
- Callback:
/api/calendar-sync/callback. - Sincronize manualmente:
POST /api/calendar-sync/accounts/{id}/syncou
deixe o cron fazer automaticamente.
Integrações
Provedores OAuth suportados
(Baseado em ProviderAdapterService.php)
| Provider | PKCE | Observação |
|---|---|---|
| Opcional | Scopes OpenID, Calendar, Drive | |
| Microsoft | Opcional | Graph API |
| Microsoft Teams | Opcional | — |
| Apple | Opcional | Sign In with Apple |
| Não | Graph | |
| Não | Graph (via Facebook) | |
| GitHub | Não | REST API |
| Obrigatório | OAuth 2.0 | |
| TikTok | Obrigatório | client_key em vez de client_id |
Outros provedores configuráveis pelo admin
- Calendário (Google, Apple iCloud, Microsoft 365).
- Email (Gmail, Outlook via OAuth).
- Armazenamento (Google Drive, OneDrive, Dropbox).
- Redes sociais (via plugin Accounts).
Perguntas frequentes
Minhas API Keys expiram? Depende da política do admin. Algumas têm TTL; outras são revogadas manualmente.
Posso limitar o escopo de uma API Key? Sim, quando o admin habilitar updateApiKeyPermissions (atualmente roadmap — ver nota no topo).
Como faço refresh de token OAuth? Automático via cron /cron/accounts/refresh-tokens. Manualmente via POST /api/accounts/connections/{id}/refresh.
Desconectar uma conta apaga meus dados? Não. Apenas revoga o acesso futuro. Dados já sincronizados permanecem.
Webhooks têm assinatura? Sim, HMAC por conexão. Valide em GET /accounts/webhook/{connectionId}/verify.
Posso ter múltiplas contas do mesmo provider? Sim. Cada conexão é independente (ex: duas contas Google distintas).
O que acontece se o token expirar? O sistema tenta refresh automaticamente. Se falhar, a conexão entra em estado "token expirado" e o usuário reconecta.
Há rate limit nas APIs? Sim, configurado pelo middleware de rate limiting do Kernel.
Limitações e políticas
- OAuth tokens armazenados criptografados.
- PKCE obrigatório em Twitter e TikTok.
- Escopos auditados no painel do admin antes de aprovação.
- Webhooks validam HMAC e IP allowlist quando configurado.
- Logs de conexão em canal
audit. - Rotação de segredos recomendada periodicamente.
Relacionados
- Segurança e Privacidade
- Cadastro e Login
- Notificações
Este artigo foi útil?
Perguntas e Respostas
Nenhuma pergunta ainda. Seja o primeiro a perguntar!