Files
noteflow/README_GOOGLE_CALENDAR.md
Claude 3cb6c81489 Feature: Ajout du support OAuth2 et Service Account pour Google Calendar
Ajout de deux méthodes d'authentification au choix pour Google Calendar :

1. **OAuth 2.0** (méthode existante améliorée) :
   - ✅ Prompt de sélection de compte Google ('select_account consent')
   - ✅ Gestion dynamique du redirect_uri avec APP_URL
   - ✅ Idéal pour accès au calendrier personnel avec consentement

2. **Service Account** (nouvelle méthode) :
   - ✅ Authentification via clé JSON sans interaction utilisateur
   - ✅ Parfait pour calendriers partagés en entreprise
   - ✅ Synchronisation automatique en arrière-plan
   - ✅ Configuration de l'email du calendrier à synchroniser

## Backend (routes/calendar.routes.js) :
- Ajout des constantes AUTH_TYPES (oauth2, service_account)
- Fonction getAuthType() pour récupérer la méthode configurée
- Fonction getServiceAccountClient() pour Service Account
- Fonction getCalendarClient() unifiée qui choisit la bonne méthode
- Route /auth-status mise à jour pour retourner le type d'auth
- Route /sync adaptée pour supporter les deux méthodes
- Support du calendrier email personnalisé pour Service Account

## Frontend (src/pages/Index.tsx) :
- Menu déroulant pour choisir entre OAuth2 et Service Account
- Interface conditionnelle selon la méthode choisie
- Champ textarea pour la clé JSON du Service Account
- Champ email pour spécifier le calendrier à synchroniser
- Affichage du type d'authentification dans le statut
- Amélioration de l'UI avec descriptions claires

## Documentation :
- OAUTH_SETUP.md : Guide complet mis à jour avec les deux méthodes
  - Section dédiée au choix de la méthode
  - Guide pas à pas pour Service Account
  - Dépannage pour les deux méthodes
- README_GOOGLE_CALENDAR.md : Guide de démarrage rapide (nouveau)
  - Comparaison des deux méthodes
  - Configuration rapide pour chaque méthode
  - Liens vers la documentation complète

Cette implémentation offre une flexibilité maximale pour s'adapter
à différents cas d'usage : personnel (OAuth2) ou professionnel (Service Account).
2025-11-12 13:05:40 +00:00

69 lines
2.1 KiB
Markdown

# Google Calendar - Deux méthodes d'authentification
NoteFlow supporte maintenant **deux méthodes** pour se connecter à Google Calendar :
## 🔐 OAuth 2.0 (Recommandé pour usage personnel)
**Avantages** :
- Accès sécurisé à votre calendrier personnel
- Choix du compte Google lors de la connexion
- Consentement explicite de l'utilisateur
**Utilisation** : Administration > Google Calendar > Méthode : OAuth 2.0
[📖 Guide complet OAuth 2.0](./OAUTH_SETUP.md#configuration-oauth-20)
---
## 🤖 Service Account (Pour automatisation)
**Avantages** :
- Aucune interaction utilisateur requise
- Parfait pour calendriers partagés en entreprise
- Fonctionne en arrière-plan automatiquement
**Utilisation** : Administration > Google Calendar > Méthode : Service Account
[📖 Guide complet Service Account](./OAUTH_SETUP.md#configuration-service-account)
---
## Problèmes courants résolus
### ✅ Erreur 400 : redirect_uri_mismatch
- Variable `APP_URL` ajoutée dans `.env.example`
- Guide de configuration détaillé dans OAUTH_SETUP.md
### ✅ Pas de choix de compte Google
- Le prompt `select_account` force maintenant l'affichage du sélecteur
### ✅ Besoin d'accès automatisé sans popup
- Utilisez Service Account pour une authentification sans interaction
---
## Configuration rapide
### Pour OAuth 2.0 :
1. Créez `.env` avec `APP_URL=http://localhost:2222`
2. Configurez OAuth 2.0 dans Google Cloud Console
3. Dans NoteFlow : Administration > Google Calendar > OAuth 2.0
4. Ajoutez Client ID et Client Secret
5. Cliquez sur "Se connecter avec Google"
### Pour Service Account :
1. Créez un Service Account sur Google Cloud Console
2. Téléchargez la clé JSON
3. Partagez votre calendrier avec l'email du Service Account
4. Dans NoteFlow : Administration > Google Calendar > Service Account
5. Collez le JSON et l'email du calendrier
6. Cliquez sur "Synchroniser"
---
## Documentation complète
📚 Consultez [OAUTH_SETUP.md](./OAUTH_SETUP.md) pour :
- Guide pas à pas complet
- Résolution des erreurs
- Checklist de vérification
- Conseils de dépannage