> For the complete documentation index, see [llms.txt](https://ajuda.digitalsac.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajuda.digitalsac.io/digicrm/operacao-uso-do-sistema/configuracoes/configuracoes-globais/sistema/google-calendar-meet-e-login.md).

# 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

| Campo                   | Chave                  | Para que serve                                        | Valores                       |
| ----------------------- | ---------------------- | ----------------------------------------------------- | ----------------------------- |
| 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

1. Acesse o **Google Cloud Console** e selecione (ou crie) o projeto da instalação.
2. **APIs e serviços → Biblioteca**: habilite as duas APIs abaixo. Sem elas, o sistema conecta mas as chamadas falham.

   | API                     | Necessária para                                                 |
   | ----------------------- | --------------------------------------------------------------- |
   | **Google Calendar API** | Enviar agendamentos, gerar link do Meet e ler horários ocupados |
   | **People API**          | Importar e espelhar contatos                                    |
3. **APIs e serviços → Credenciais → Criar credenciais → ID do cliente OAuth**, tipo **Aplicativo Web**.
4. Em **URIs de redirecionamento autorizados**, cole **exatamente** a URL mostrada nesta tela (botão de copiar ao lado do campo).
5. Copie o **Client ID** e o **Client Secret** para os campos desta aba.
6. 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:

| Escopo                       | Para que                                                                         |
| ---------------------------- | -------------------------------------------------------------------------------- |
| `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_URL` da 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

| Situação                                                        | Causa provável                                                                     |
| --------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| "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.
