Saltar al contenido
Studeia Docs
AI-assisted translation — last updated 2026-05-24. For original (pt-BR or en-US), use the language switcher.

Integración Google Meet (OAuth + Calendar API + Meet REST v2)

Google Meet en Studeia vía OAuth 2.0 con admin consent, reuniones vía Calendar API con enlace automático, Meet REST API v2 para estado. Grabación y transcripción iniciadas por el host

2026-05-24 5 min
Resposta curta

Google Meet se integra como proveedor de video via OAuth 2.0 admin consent + Calendar API (crea evento con enlace Meet) + Meet REST API v2 (estado). Configuración en ~15 min a través de Google Cloud Console. Limitaciones: grabación/transcripción iniciadas MANUALMENTE por el host (Google no expone la API start_recording), endMeeting no soportado (el adaptador marca como completado localmente), la funcionalidad completa requiere Workspace de pago.

Configuración

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. Pegue Client ID + Client Secret
  3. Haga clic en "Authorize" — redirige a Google OAuth admin consent
  4. Acepte los permisos (administrador del dominio Google Workspace)
  5. Studeia almacena access_token + refresh_token cifrados con AES-256-GCM

3. Validar

Cree un LiveClass con videoProvider=google_meet > Studeia llama a Calendar API > evento creado con enlace Meet > el alumno accede via joinMethod=external (nueva pestaña).

Cómo funciona

Studeia GoogleMeetAdapter.createMeeting()
  → Calendar API: events.insert
    {
      summary: "Clase: Matemáticas - Geometría",
      start: { dateTime: ... },
      end: { dateTime: ... },
      conferenceData: { createRequest: { requestId: uuid, conferenceSolutionKey: { type: "hangoutsMeet" } } },
      attendees: [...alumnos.map(s => ({ email: s.email }))]
    }
  → Google devuelve el evento + hangoutLink (ej: https://meet.google.com/abc-defg-hij)
  ↓
Studeia guarda LiveClass.providerJoinUrl = hangoutLink
  ↓
El alumno accede: joinMethod=external (X-Frame-Options bloquea el iframe)

Sincronización de grabaciones

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

  1. Lista LiveClasses completados hace más de 15 min sin recordingUrl
  2. Para cada uno, llama a adapter.getRecordings(meetingId)
  3. Meet REST API v2: GET https://meet.googleapis.com/v2/conferenceRecords/{name}
  4. Si la grabación está disponible: actualiza recordingUrl + crea LiveClassTranscription (si hay transcript)

Importante: la grabación debe haber sido INICIADA por el host durante la reunión. Si el host olvidó grabar, no habrá grabación que sincronizar.

Refresh tokens

Los tokens OAuth de Google expiran cada hora. Studeia:

  • Cachea access_token en Redis (TTL 55 min)
  • Antes de cada llamada: verifica la expiración, refresca via refresh_token si es necesario
  • Si el refresh falla: marca la integración como inactiva + notifica al administrador

Limitaciones vs Zoom/Teams

RecursoGoogle MeetZoomTeams
Crear reunión via APISí (Calendar)Sí (Graph)
Finalizar reunión via APINONO
Iniciar grabación via APINONO
Obtener grabación via APISí (Meet REST v2)Sí (webhook)Sí (Graph)
Transcripción automáticaSí (Workspace Edu+)Sí (VTT)Sí (VTT)
Webhook de ciclo de vidaNO (solo via polling)Sí (Graph Notifications)

Cuándo NO usar Google Meet

  • ❌ Escuela sin Workspace de pago (límite de 1 hora por reunión)
  • ❌ Si se requiere grabación automática sin depender de que el host haga clic
  • ❌ Si se necesita embed en iframe (Studeia + BBB lo resuelve)
  • ❌ Si se necesitan eventos webhook de la reunión (Google no los expone — Studeia depende de polling cron)

Ver también

FAQ

¿Cómo crea Studeia una reunión en Google Meet?

A través de la Google Calendar API. Studeia crea un evento de Calendar con conferenceData solicitando un enlace de Meet — Google genera la URL automáticamente. La Meet REST API v2 se utiliza para consultar el estado y las grabaciones (cuando están disponibles).

¿Google Meet tiene grabación automática?

Solo mediante Google Workspace Business Standard+ o Education Standard+. Aun así, la grabación debe iniciarse MANUALMENTE por el host en Meet (Google no expone una API para start_recording automático). Studeia consulta las grabaciones via Calendar Events API + Drive API después de finalizar la reunión.

¿Puedo usar Google Meet sin Workspace de pago?

Para crear reuniones via API: se necesita Workspace de pago. Para que los alumnos PARTICIPEN: cualquiera puede unirse (incluyendo cuentas @gmail.com personales). Para escuelas con Workspace for Education Fundamentals (gratuito): las reuniones funcionan pero con un límite de 1 hora por sesión.

¿Funciona el endpoint endMeeting?

NO. Google no expone una API para terminar una reunión de forma programática. El adaptador de Studeia la marca como completada localmente (LiveClass.actualEndTime = now()), pero la reunión de Google en sí continúa hasta que el último participante salga o el host haga clic en 'End meeting' manualmente.

Veja tambem

Integración Google Meet (OAuth + Calendar API + Meet REST v2)