Conta e Acesso

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 de app/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

  1. API Keys: /dashboard/profile?tab=api.
  2. Embed: /dashboard/profile?tab=embed.
  3. Conexões OAuth: /dashboard/accounts.
  4. Admin Accounts: /admin/accounts.

Tutoriais

Conectar minha conta do Google

Objetivo: Sincronizar calendário e contatos.

Passos:

  1. Em /dashboard/accounts, clique em Adicionar conexãoGoogle.
  2. Confirme escopos solicitados.
  3. Aprove no Google.
  4. Callback volta para /accounts/oauth/google/callback com sucesso.
  5. Conexão aparece na lista — teste com /api/accounts/connections/{id}/test.

Obter meu embed code

Objetivo: Incorporar um widget no meu site.

Passos:

  1. Acesse /dashboard/profile?tab=embed.
  2. Copie o snippet exibido.
  3. Cole no <head> ou <body> do seu site.

Conectar calendário Microsoft

Objetivo: Sincronizar eventos bidirecionais.

Passos:

  1. Solicite URL de auth: GET /api/calendar-sync/auth-url?provider=microsoft.
  2. Redirecione usuário.
  3. Callback: /api/calendar-sync/callback.
  4. Sincronize manualmente: POST /api/calendar-sync/accounts/{id}/sync ou

deixe o cron fazer automaticamente.

Integrações

Provedores OAuth suportados

(Baseado em ProviderAdapterService.php)

ProviderPKCEObservação
GoogleOpcionalScopes OpenID, Calendar, Drive
MicrosoftOpcionalGraph API
Microsoft TeamsOpcional
AppleOpcionalSign In with Apple
FacebookNãoGraph
InstagramNãoGraph (via Facebook)
GitHubNãoREST API
TwitterObrigatórioOAuth 2.0
TikTokObrigatórioclient_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!

Tem uma dúvida sobre este artigo?

CAPTCHA