Aller au contenu principal
Cette page vous a-t-elle été utile ?

Synchronisation externe API

Synchronisation du calendrier externe

Connectez les calendriers Google ou Microsoft et mappez-les à PrimeCal

Ce contrôleur gère l'état de connexion du fournisseur, le transfert OAuth, la synchronisation du calendrier mappé, le fournisseur déconnexions et exécution de synchronisation manuelle.

JWT pour la configurationPublic OAuth rappelGoogle et MicrosoftLiaison d'automatisation en option

Authentification et autorisations​

  • Les itinéraires de configuration et de gestion nécessitent une authentification.
  • Le rappel OAuth est public car le fournisseur doit l'appeler directement.
  • Le rappel résout l'utilisateur à partir de la valeur state ou du paramètre de requête userId.
  • L’état de synchronisation est toujours limité à l’utilisateur.

Référence du point de terminaison​

MéthodeCheminObjectifDemande ou requêteAuthentification
GET/api/calendar-sync/statusObtenez la connexion du fournisseur et l’état de synchronisation.AucunClé JWT ou utilisateur API
GET/api/calendar-sync/auth/:providerObtenez l’URL OAuth du fournisseur.Chemin : providerClé JWT ou utilisateur API
GET/api/calendar-sync/callback/:providerGérez le rappel OAuth et redirigez vers le frontend.Chemin : provider, requête : code,state,userId,session_state,iss,scopePublique
POST/api/calendar-sync/syncConserver les mappages de calendrier externe sélectionnés.Corps : provider,calendarsClé JWT ou utilisateur API
POST/api/calendar-sync/disconnectDéconnectez tous les fournisseurs de synchronisation pour l'utilisateur.AucunClé JWT ou utilisateur API
POST/api/calendar-sync/disconnect/:providerDéconnectez un fournisseur.Chemin : providerClé JWT ou utilisateur API
POST/api/calendar-sync/forceExécutez immédiatement une synchronisation manuelle.AucunClé JWT ou utilisateur API

Demander des formes​

Fournisseurs​

Valeurs actuelles de l'énumération SyncProvider :

  • google
  • microsoft

Synchroniser les mappages​

SyncCalendarsDto

  • provider : énumération requise google|microsoft
  • calendars : tableau requis de CalendarSyncDto

CalendarSyncDto

  • externalId : chaîne obligatoire
  • localName : chaîne obligatoire
  • bidirectionalSync : booléen facultatif, true par défaut
  • triggerAutomationRules : booléen facultatif, false par défaut
  • selectedRuleIds : tableau de nombres facultatif

Requête de rappel OAuth​

OAuthCallbackQueryDto

  • code : chaîne obligatoire, maximum 2 048 caractères
  • state : chaîne facultative, maximum 512 caractères
  • userId : entier facultatif, minimum 1
  • session_state : chaîne facultative, maximum 256 caractères
  • iss : chaîne facultative, maximum 512 caractères
  • scope : chaîne facultative, maximum 2 048 caractères

Exemples d'appels​

Lire l'état de synchronisation​

curl "$PRIMECAL_API/api/calendar-sync/status" \
-H "Authorization: Bearer $TOKEN"

Démarrer le fournisseur OAuth​

curl "$PRIMECAL_API/api/calendar-sync/auth/google" \
-H "Authorization: Bearer $TOKEN"

Enregistrer les mappages de calendrier externes​

curl -X POST "$PRIMECAL_API/api/calendar-sync/sync" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"provider": "google",
"calendars": [
{
"externalId": "primary",
"localName": "Family Calendar",
"bidirectionalSync": true,
"triggerAutomationRules": true,
"selectedRuleIds": [14]
}
]
}'

Déconnecter un fournisseur​

curl -X POST "$PRIMECAL_API/api/calendar-sync/disconnect/microsoft" \
-H "Authorization: Bearer $TOKEN"

Notes de réponse et de comportement​

  • GET /api/calendar-sync/status renvoie un tableau providers avec provider, isConnected, calendars et syncedCalendars.
  • GET /api/calendar-sync/auth/:provider renvoie { authUrl }.
  • Le rappel redirige vers /calendar-sync sur le frontend configuré avec success=connected ou une erreur codée.
  • Les écritures de mappage, les déconnexions et les appels de synchronisation forcée renvoient des charges utiles { message } courtes.

Meilleures pratiques​

  • Lisez toujours /api/calendar-sync/status avant de rendre les paramètres de synchronisation ou d'importer des sélecteurs.
  • Utilisez l'URL d'authentification générée par le backend à partir de /api/calendar-sync/auth/:provider ; ne créez pas d'URL de fournisseur sur le client.
  • Gardez selectedRuleIds aussi petit que possible lorsque vous activez les déclencheurs d'automatisation sur les calendriers importés.
  • Utilisez /api/calendar-sync/force pour les flux de réparation ou de support manuels, et non comme mécanisme d'interrogation.
  • Gérez les échecs de rappel via la chaîne de requête d’erreur redirigée et affichez un chemin de nouvelle tentative convivial.