Réunions : Teams, Zoom, Google Meet
Le connecteur Réunions importe les transcriptions de vos réunions Microsoft Teams, Zoom et Google Meet dans une base de connaissances. Chaque transcription devient un document Markdown, paragraphe par paragraphe avec le nom de l'intervenant, que l'assistant peut ensuite citer.
Chaque plateforme se configure une fois sur le serveur (une « application » déclarée chez l'éditeur), puis chaque espace connecte son propre compte depuis Paramètres → Intégrations → Réunions.
Ajouter une connexion
Tout se fait dans Paramètres → Intégrations → Réunions → Ajouter une connexion, réservé aux administrateurs de l'espace. Un panneau s'ouvre en quatre étapes :
- Plateforme : Teams, Zoom ou Google Meet.
- Application : l'éditeur exige qu'une « application » soit déclarée chez lui une fois (procédures ci-dessous, également rappelées dans le panneau). Copiez l'adresse de retour affichée dans cette application, puis collez ici son identifiant et son secret.
- Compte : Se connecter avec… ouvre une fenêtre de connexion de l'éditeur ; connectez-vous et acceptez l'accès. La fenêtre se ferme seule et GsKnora affiche le compte connecté.
- Import : base de connaissances, import automatique, publication directe.
Le secret et les jetons sont chiffrés en base si SYSTEM_AES_KEY (32 caractères) est défini sur le serveur. Un clic sur une connexion rouvre le panneau pour la modifier ; la corbeille la supprime, les documents déjà importés restent.
Facultatif côté serveur : MEETINGS_PUBLIC_URL fixe l'adresse publique utilisée pour l'adresse de retour (sinon, celle du navigateur). Une application commune à tous les espaces peut aussi être fournie par variables d'environnement (MICROSOFT_TEAMS_CLIENT_ID / _SECRET / _TENANT, ZOOM_CLIENT_ID / _SECRET, GOOGLE_MEET_CLIENT_ID / _SECRET) ; celle saisie dans l'interface est prioritaire.
L'adresse de retour vaut <adresse de WeKnora>/api/v1/integrations/meetings-oauth/callback.
Déclarer l'application chez l'éditeur
Microsoft Teams
Prérequis : un compte Microsoft 365 professionnel ou scolaire. Les comptes Microsoft personnels ne sont pas pris en charge par Microsoft.
- Portail Azure → Microsoft Entra ID → Inscriptions d'applications → Nouvelle inscription. Type de compte : « Comptes dans un annuaire d'organisation » (multilocataire) ou votre seul annuaire. URI de redirection (Web) : l'adresse de retour ci-dessus.
- Certificats et secrets → Nouveau secret client : copiez sa valeur et l'« ID d'application (client) », à coller à l'étape 2 du panneau.
- Autorisations d'API → Microsoft Graph → Autorisations déléguées :
User.Read,Calendars.Read,OnlineMeetings.Read,OnlineMeetingTranscript.Read.All,offline_access. Puis Accorder un consentement administrateur :OnlineMeetingTranscript.Read.Alll'exige. - Centre d'administration Teams → Réunions → Paramètres de réunion → Accès aux transcriptions par API : activez-le (désactivé par défaut chez Microsoft). Activez aussi l'attribution des intervenants pour avoir leurs noms.
- La transcription doit être autorisée par la stratégie de réunion Teams des organisateurs.
Le connecteur lit l'agenda de l'utilisateur connecté, retrouve les réunions Teams, puis leurs transcriptions. Microsoft supprime l'accès aux réunions ponctuelles 60 jours après leur date.
Zoom
Prérequis : un forfait Zoom Pro ou supérieur, l'enregistrement dans le cloud et l'option « Créer une transcription audio » activés.
- Zoom App Marketplace → Develop → Build App → General App, gérée par l'utilisateur (User-managed).
- URL de redirection OAuth et liste d'autorisation : l'adresse de retour ci-dessus.
- Scopes :
cloud_recording:read:list_user_recordings(ourecording:readpour une application à scopes classiques) etuser:read:user. - Copiez le Client ID et le Client Secret, à coller à l'étape 2 du panneau.
Seules les transcriptions des enregistrements cloud terminés sont importées.
Google Meet
Prérequis : Google Workspace Business Standard ou supérieur (les transcriptions n'existent ni sur Business Starter ni sur les comptes Gmail personnels).
- Google Cloud Console → nouveau projet → API et services → Bibliothèque : activez Google Meet REST API.
- Écran de consentement OAuth : scopes
openid,emailethttps://www.googleapis.com/auth/meetings.space.readonly. Ce dernier est « sensible » : pour des comptes hors de votre organisation, Google demande une vérification de l'application. En type « Interne », aucune vérification n'est nécessaire. - Identifiants → Créer un ID client OAuth → Application Web, URI de redirection autorisé : l'adresse de retour ci-dessus. Copiez l'ID et le secret, à coller à l'étape 2 du panneau.
Google supprime les transcriptions de l'API 30 jours après la réunion : gardez l'import automatique activé. Une application en statut « Test » reçoit des jetons valables 7 jours seulement ; publiez-la pour un usage durable.
Réglages d'import
| Réglage | Effet |
|---|---|
| Base de connaissances | Base qui reçoit les documents. Obligatoire pour importer. |
| Import automatique | Vérifie les nouvelles transcriptions toutes les heures. |
| Publier directement | Sinon, les documents sont créés en brouillon et ne sont pas indexés tant qu'ils ne sont pas publiés. |
| Importer maintenant | Lance un import tout de suite. |
Le premier import couvre les 30 derniers jours. Les suivants repartent du précédent, avec une marge de 48 heures pour les transcriptions générées en retard. Une transcription déjà importée ne l'est jamais deux fois.
Supprimer une connexion efface l'application, les jetons et les réglages de la plateforme pour cet espace ; les documents déjà importés restent. Si l'éditeur révoque l'accès, l'écran affiche l'erreur et l'import s'arrête jusqu'à une nouvelle connexion.
API
Routes sous /api/v1/integrations/meetings, {provider} valant teams, zoom ou google_meet.
| Méthode | Route | Rôle | Usage |
|---|---|---|---|
| GET | /status | Lecteur | Plateformes, connexions et adresse de retour |
| PUT | /providers/{provider}/app | Admin | { "client_id", "client_secret", "app_tenant" } (secret vide : conservé) |
| POST | /providers/{provider}/auth/start | Admin | Renvoie auth_url, la page de connexion de l'éditeur |
| PUT | /providers/{provider}/settings | Admin | { "knowledge_base_id", "auto_sync", "publish" } |
| POST | /providers/{provider}/pull | Admin | Import immédiat |
| DELETE | /providers/{provider}/connection | Admin | Suppression de la connexion |
GET /api/v1/integrations/meetings-oauth/callback reçoit le retour de l'éditeur ; elle est publique et protégée par un code à usage unique valable 15 minutes.