Google (Calendar, Meet e Login)
Caminho: Configurações → Globais → aba Google
Apenas master vê e edita esta aba.
Aqui ficam as credenciais do app OAuth da instalação. Enquanto os dois campos estiverem vazios, nada muda no sistema: a aba "Conta Google" não aparece no perfil, o botão "Entrar com Google" não aparece no login e a sincronização de contatos fica indisponível.
[[FOTO]]
Campos
Client ID
GOOGLE_CLIENT_ID
ID do cliente OAuth criado no Google Cloud
string; DB
Client Secret
GOOGLE_CLIENT_SECRET
Segredo do mesmo cliente OAuth
string (mascarada); DB
URL de redirecionamento
—
Somente leitura, para copiar no Google Cloud
derivada de BACKEND_URL
Validar credenciais
—
Confere Client ID/Secret direto no Google, sem salvar
POST /google/oauth/validate
Como criar o app no Google Cloud
Acesse o Google Cloud Console e selecione (ou crie) o projeto da instalação.
APIs e serviços → Biblioteca: habilite as duas APIs abaixo. Sem elas, o sistema conecta mas as chamadas falham.
APINecessária paraGoogle Calendar API
Enviar agendamentos, gerar link do Meet e ler horários ocupados
People API
Importar e espelhar contatos
APIs e serviços → Credenciais → Criar credenciais → ID do cliente OAuth, tipo Aplicativo Web.
Em URIs de redirecionamento autorizados, cole exatamente a URL mostrada nesta tela (botão de copiar ao lado do campo).
Copie o Client ID e o Client Secret para os campos desta aba.
Clique em Validar credenciais e salve.
Depois de habilitar uma API no Google Cloud, aguarde alguns minutos: o próprio Google avisa que a liberação leva um tempo para propagar. Até lá, as chamadas continuam falhando com "API has not been used in project ... or it is disabled".
[[FOTO]]
Tela de consentimento
O app precisa de uma tela de consentimento OAuth configurada no mesmo projeto, com os escopos usados pelo sistema:
openid, email, profile
Identificar quem está entrando
calendar.events
Criar/atualizar os agendamentos no calendário do profissional
calendar.freebusy
Ler os horários ocupados
contacts
Importar e espelhar contatos — pedido apenas a quem tem a permissão liberada
Enquanto o app estiver em modo de teste no Google, só as contas cadastradas como testadoras conseguem conectar.
Regras importantes
As credenciais valem para toda a instalação. Cada usuário conecta a própria conta Google depois, no perfil.
O Client Secret é gravado no banco. Trate esta aba como área sensível.
Trocar o Client ID/Secret invalida as conexões existentes: todos os usuários precisam reconectar a conta.
A URL de redirecionamento vem do
BACKEND_URLda instalação. Se o domínio do backend mudar, atualize também no Google Cloud, senão o consentimento passa a falhar.
Mensagens e erros comuns
"Credenciais inválidas — confira Client ID e Client Secret"
Copiou errado, ou as credenciais são de outro projeto
Ao conectar: redirect_uri_mismatch
A URL de redirecionamento não foi cadastrada exatamente igual no Google Cloud
Nos logs: "Google Calendar API has not been used in project..."
A API não foi habilitada, ou foi há poucos minutos e ainda está propagando
Nos logs: "Quota exceeded ... People API"
Volume de sincronização acima da cota do projeto; confira as cotas no Google Cloud
Dicas de uso
Confira se o número do projeto que aparece nas mensagens de erro é o mesmo do Client ID cadastrado (o Client ID começa com esse número). É comum habilitar a API em um projeto e ter as credenciais de outro.
Use Validar credenciais antes de sair da tela: ele confere direto com o Google e evita descobrir o erro só quando um usuário tentar conectar.
Atualizado