Pular para o conteúdo

Integracao Google Meet (OAuth + Calendar API + Meet REST v2)

Google Meet como video provider do Studeia: OAuth 2.0 com admin consent, meetings criados via Calendar API (geram Meet link automatico), Meet REST API v2 para status. Limitacoes: gravacao/transcricao iniciadas manualmente pelo host.

2026-05-24 5 min
Resposta curta

Google Meet integra como video provider via OAuth 2.0 admin consent + Calendar API (cria evento com Meet link) + Meet REST API v2 (status). Setup ~15min via Google Cloud Console. Limitacoes: gravacao/transcricao iniciadas MANUALMENTE pelo host (Google nao expoe start_recording API), endMeeting nao suportado (adapter marca como completed local), funcionalidade plena requer Workspace pago.

Setup

1. Google Cloud Console

  1. https://console.cloud.google.com > APIs & Services > Library
  2. Habilitar Google Calendar API + Google Meet REST API v2
  3. Credentials > OAuth 2.0 Client ID > Web application
  4. Authorized redirect URI: https://[tenant].studeia.com/api/institution/video-provider/callback/google-meet
  5. Copie Client ID + Client Secret

2. Studeia

  1. Settings > Video Provider > Google Meet > Connect
  2. Cole Client ID + Client Secret
  3. Click "Authorize" — redirect para Google OAuth admin consent
  4. Aceitar permissoes (admin do dominio Google Workspace)
  5. Studeia armazena access_token + refresh_token criptografados AES-256-GCM

3. Validar

Cria LiveClass com videoProvider=google_meet > Studeia chama Calendar API > evento criado com Meet link > aluno entra via joinMethod=external (nova aba).

Como funciona

Studeia GoogleMeetAdapter.createMeeting()
  → Calendar API: events.insert
    {
      summary: "Aula: Matematica - Geometria",
      start: { dateTime: ... },
      end: { dateTime: ... },
      conferenceData: { createRequest: { requestId: uuid, conferenceSolutionKey: { type: "hangoutsMeet" } } },
      attendees: [...alunos.map(s => ({ email: s.email }))]
    }
  → Google retorna evento + hangoutLink (ex: https://meet.google.com/abc-defg-hij)
  ↓
Studeia salva LiveClass.providerJoinUrl = hangoutLink
  ↓
Aluno entra: joinMethod=external (X-Frame-Options bloqueia iframe)

Recording sync

Cron /api/cron/recording-sync a cada 15min:

  1. Lista LiveClasses completed > 15min sem recordingUrl
  2. Para cada, chama adapter.getRecordings(meetingId)
  3. Meet REST API v2: GET https://meet.googleapis.com/v2/conferenceRecords/{name}
  4. Se gravacao disponivel: atualiza recordingUrl + cria LiveClassTranscription (se transcript)

Importante: gravacao precisa ter sido INICIADA pelo host durante o meeting. Se host esqueceu de gravar: nao ha gravacao a sincronizar.

Refresh tokens

OAuth tokens Google expiram a cada hora. Studeia:

  • Cache access_token Redis (TTL 55min)
  • Antes de cada chamada: verifica expiracao, refresha via refresh_token se necessario
  • Se refresh falha: marca integration inactive + notifica admin

Limitacoes vs Zoom/Teams

RecursoGoogle MeetZoomTeams
Criar meeting via APISim (Calendar)SimSim (Graph)
End meeting via APINAOSimNAO
Start recording via APINAOSimNAO
Get recording via APISim (Meet REST v2)Sim (webhook)Sim (Graph)
Transcript automaticaSim (Workspace Edu+)Sim (VTT)Sim (VTT)
Webhook lifecycleNAO (so via polling)SimSim (Graph Notifications)

Quando NAO usar Google Meet

  • ❌ Escola sem Workspace pago (limite 1h por meeting)
  • ❌ Quer gravacao automatica sem depender de host clicar
  • ❌ Quer iframe embed (Studeia + BBB resolve)
  • ❌ Quer webhook events de meeting (Google nao expoe — Studeia depende de polling cron)

Veja tambem

FAQ

Como Studeia cria meeting no Google Meet?

Via Google Calendar API. Studeia cria evento Calendar com conferenceData solicitando Meet link — Google gera URL automaticamente. Meet REST API v2 e usado para consultar status e recordings (quando disponiveis).

Google Meet tem gravacao automatica?

Apenas via Google Workspace Business Standard+ ou Education Standard+. Mesmo assim, gravacao precisa ser iniciada MANUALMENTE pelo host no Meet (Google nao expoe API para start_recording automatico). Studeia consulta gravacoes via Calendar Events API + Drive API apos finalizar meeting.

Posso usar Google Meet sem Workspace pago?

Para criar meetings via API: precisa de Workspace pago. Para alunos PARTICIPAREM: qualquer um pode entrar (incluindo @gmail.com pessoal). Para escolas Workspace for Education Fundamentals (gratis): meetings funcionam mas com limite 1h por sessao.

Endpoint endMeeting funciona?

NAO. Google nao expoe API para terminar meeting programaticamente. Adapter do Studeia marca como completed localmente (LiveClass.actualEndTime = now()) mas o meeting Google em si continua ate que o ultimo participante saia ou o host clique 'End meeting' manualmente.

Veja tambem

Integracao Google Meet (OAuth + Calendar API + Meet REST v2) | Studeia Docs