4 pontos de integracao
1. SSO via OIDC
Setup:
- Google Cloud Console > APIs & Services > Credentials > Create Credentials > OAuth 2.0 Client ID
- Application type: Web application
- Authorized redirect URI:
https://[tenant].studeia.com/api/auth/sso/[slug]/oidc/callback - Copie Client ID + Client Secret
- Studeia > Settings > SSO > Add Provider > OIDC
- Discovery URL:
https://accounts.google.com/.well-known/openid-configuration(auto-fetch) - Allowed domains: ex:
@escola.edu.br(anti-shadow accounts)
JIT provisioning cria usuario automatico no primeiro login. Atributos mapeados: name, email, role.
2. Google Drive sync (biblioteca de midia)
Setup:
- Google Cloud Console > APIs > habilitar Drive API + Google Picker API
- Mesmo OAuth Client (ou criar dedicado) + uma browser API key restrita a Picker API
- Scope:
https://www.googleapis.com/auth/drive.file(non-sensitive — acesso so a arquivos criados pelo Studeia + escolhidos pelo usuario no Google Picker). Nao usamos o escopo restricteddrive(exige avaliacao CASA + recertificacao anual) - Studeia > Settings > Integrations > Google Drive > Connect
- Consent flow OAuth do proprio usuario
- Studeia armazena tokens AES-256-GCM criptografados
Funcionalidades (DriveIntegration + DriveSyncEngine):
- Import: o admin escolhe os arquivos pelo Google Picker (multi-selecao) → MediaAsset no Studeia
- Export: MediaAsset → Drive (arquivos criados pelo app)
- Backup: snapshot completo dos MediaAssets em uma pasta do Drive
Sob
drive.fileo app nao descobre automaticamente arquivos externos novos numa pasta. Por isso o sync bidirecional automatico de pasta existe apenas para o OneDrive (Microsoft Files.ReadWrite.All); no Google, importe via Picker quando houver material novo. O cron/api/cron/drive-synccobre o sync de pasta do OneDrive e o export no Google.
3. Google Calendar (aulas ao vivo)
Setup: mesmo OAuth Client, habilitar Calendar API.
Funcionalidades:
- Quando admin cria LiveClass no Studeia → evento Calendar criado para todos os alunos da turma
- Mudanca de horario → atualiza evento Calendar
- Cancelamento → deleta evento
- Aluno ve aula no Google Calendar do celular (notificacoes nativas)
4. Google Meet (video provider)
Setup:
- Google Cloud Console > APIs > Habilitar Calendar API + Meet REST API v2
- OAuth 2.0 Client (mesmo dos anteriores)
- Studeia > Settings > Video Provider > Google Meet > Connect
- Admin consent flow
Como funciona:
- LiveClass criado com videoProvider=google_meet
- Studeia cria evento Calendar com conferenceData (gera Meet link automatico)
- Aluno entra via joinMethod=external (nova aba, abre Meet app/web)
Limitacao: endMeeting nao suportado via API — adapter marca como completed localmente. Limitacao: gravacao/transcricao iniciada manualmente pelo host (Google nao expoe API para iniciar gravacao automaticamente).
Setup completo (30 minutos)
| Etapa | Tempo |
|---|---|
| 1. Habilitar 4 APIs no Google Cloud Console | 5min |
| 2. Criar OAuth 2.0 Client (web app) | 3min |
| 3. Configurar SSO em Studeia | 5min |
| 4. Conectar Drive + Calendar + Meet em Studeia | 10min |
| 5. Validar com 1 usuario teste | 5min |
| 6. Comunicar aos professores/alunos | 2min |
Troubleshooting
Erro "Token expired"
OAuth tokens Google expiram a cada hora. Studeia armazena refreshToken e renova automaticamente. Se erro persistir: re-autorizar via Settings > Integrations > Disconnect + Reconnect.
Drive sync lento
Drive API tem quotas (1000 req/100s/user). Para >5000 arquivos por hora, considere:
- Filtrar pastas especificas (nao raiz inteira)
- Aumentar intervalo do cron (ex: a cada 2h em vez de 30min)
Meet sem botao "Gravar"
Apenas o host (organizador do meeting) pode iniciar gravacao. Studeia define organizer = professor configurado. Se outro user iniciou: Meet bloqueia gravacao.
LGPD considerations
- Tokens OAuth criptografados AES-256-GCM (regra critica 15)
- OAuth state HMAC-SHA256 + nonce Redis 15min (anti-replay)
- Drive sync respeita scopes minimo (drive.file recomendado vs drive completo)