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

Intégration Google Meet (OAuth + Calendar API + Meet REST v2)

Google Meet dans Studeia via OAuth 2.0 avec admin consent, réunions via Calendar API avec lien automatique, Meet REST API v2 pour statut. Enregistrement et transcription lancés par l'hôte

2026-05-24 5 min
Resposta curta

Google Meet s'intègre en tant que fournisseur vidéo via OAuth 2.0 avec consentement administrateur + Calendar API (crée un événement avec lien Meet) + Meet REST API v2 (statut). Configuration ~15min via Google Cloud Console. Limitations : enregistrement/transcription démarrés MANUELLEMENT par l'hôte (Google n'expose pas d'API start_recording), endMeeting non pris en charge (l'adaptateur marque comme terminé localement), la fonctionnalité complète nécessite un Workspace payant.

Configuration

1. Google Cloud Console

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

2. Studeia

  1. Paramètres > Fournisseur vidéo > Google Meet > Connecter
  2. Collez le Client ID + Client Secret
  3. Cliquez sur « Autoriser » — redirection vers le consentement administrateur Google OAuth
  4. Acceptez les autorisations (administrateur du domaine Google Workspace)
  5. Studeia stocke access_token + refresh_token chiffrés en AES-256-GCM

3. Valider

Créez une LiveClass avec videoProvider=google_meet > Studeia appelle Calendar API > événement créé avec lien Meet > l'étudiant rejoint via joinMethod=external (nouvel onglet).

Fonctionnement

Studeia GoogleMeetAdapter.createMeeting()
  → Calendar API: events.insert
    {
      summary: "Cours : Mathématiques - Géométrie",
      start: { dateTime: ... },
      end: { dateTime: ... },
      conferenceData: { createRequest: { requestId: uuid, conferenceSolutionKey: { type: "hangoutsMeet" } } },
      attendees: [...etudiants.map(s => ({ email: s.email }))]
    }
  → Google retourne l'événement + hangoutLink (ex : https://meet.google.com/abc-defg-hij)
  ↓
Studeia enregistre LiveClass.providerJoinUrl = hangoutLink
  ↓
L'étudiant rejoint : joinMethod=external (X-Frame-Options bloque l'iframe)

Synchronisation des enregistrements

Cron /api/cron/recording-sync toutes les 15min :

  1. Liste les LiveClasses terminées depuis > 15min sans recordingUrl
  2. Pour chacune, appelle adapter.getRecordings(meetingId)
  3. Meet REST API v2 : GET https://meet.googleapis.com/v2/conferenceRecords/{name}
  4. Si l'enregistrement est disponible : met à jour recordingUrl + crée LiveClassTranscription (si transcript)

Important : l'enregistrement doit avoir été DÉMARRÉ par l'hôte pendant la réunion. Si l'hôte a oublié d'enregistrer : il n'y a aucun enregistrement à synchroniser.

Refresh tokens

Les tokens OAuth Google expirent toutes les heures. Studeia :

  • Met en cache access_token dans Redis (TTL 55min)
  • Avant chaque appel : vérifie l'expiration, rafraîchit via refresh_token si nécessaire
  • Si le rafraîchissement échoue : marque l'intégration comme inactive + notifie l'administrateur

Limitations par rapport à Zoom/Teams

FonctionnalitéGoogle MeetZoomTeams
Créer une réunion via APIOui (Calendar)OuiOui (Graph)
Terminer une réunion via APINONOuiNON
Démarrer l'enregistrement via APINONOuiNON
Récupérer l'enregistrement via APIOui (Meet REST v2)Oui (webhook)Oui (Graph)
Transcription automatiqueOui (Workspace Edu+)Oui (VTT)Oui (VTT)
Webhook lifecycleNON (uniquement via polling)OuiOui (Graph Notifications)

Quand NE PAS utiliser Google Meet

  • ❌ Établissement sans Workspace payant (limite de 1h par réunion)
  • ❌ Enregistrement automatique sans dépendre du clic de l'hôte
  • ❌ Intégration en iframe souhaitée (Studeia + BBB résout ce problème)
  • ❌ Événements webhook de réunion souhaités (Google ne les expose pas — Studeia dépend du cron de polling)

Voir aussi

FAQ

Comment Studeia crée-t-il une réunion dans Google Meet ?

Via Google Calendar API. Studeia crée un événement Calendar avec conferenceData en demandant un lien Meet — Google génère l'URL automatiquement. Meet REST API v2 est utilisé pour consulter le statut et les enregistrements (lorsqu'ils sont disponibles).

Google Meet propose-t-il l'enregistrement automatique ?

Uniquement via Google Workspace Business Standard+ ou Education Standard+. Même dans ce cas, l'enregistrement doit être démarré MANUELLEMENT par l'hôte dans Meet (Google n'expose pas d'API pour start_recording automatique). Studeia consulte les enregistrements via Calendar Events API + Drive API après la fin de la réunion.

Puis-je utiliser Google Meet sans Workspace payant ?

Pour créer des réunions via API : un Workspace payant est nécessaire. Pour que les étudiants PARTICIPENT : n'importe qui peut rejoindre (y compris avec un compte @gmail.com personnel). Pour les établissements avec Workspace for Education Fundamentals (gratuit) : les réunions fonctionnent mais avec une limite de 1h par session.

Le endpoint endMeeting fonctionne-t-il ?

NON. Google n'expose pas d'API pour terminer une réunion de façon programmatique. L'adaptateur de Studeia marque la réunion comme terminée localement (LiveClass.actualEndTime = now()) mais la réunion Google elle-même continue jusqu'à ce que le dernier participant parte ou que l'hôte clique sur « Terminer la réunion » manuellement.

Veja tambem

Intégration Google Meet (OAuth + Calendar API + Meet REST v2)