Ce projet permet de synchroniser automatiquement l'emploi du temps récupéré depuis la plateforme Ecole Directe avec un calendrier Google (Google Calendar). Il utilise l'API d'Ecole Directe pour extraire les cours, gère la double authentification si nécessaire et insère ou met à jour les événements dans votre Google Calendar.
- Connexion à Ecole Directe : Récupère l'emploi du temps à partir de votre compte Ecole Directe.
- Gestion de la double authentification : Gère automatiquement les questions de vérification (QCM) si elles sont activées sur votre compte.
- Synchronisation avec Google Calendar : Insère ou met à jour vos cours dans un calendrier Google.
- Configuration personnalisable : Modifiez facilement le nombre de jours à synchroniser et d'autres paramètres via un fichier de configuration.
- Allez sur Google Cloud Console.
- Créez un nouveau projet en cliquant sur Select a project > New Project.
- Nommez votre projet et cliquez sur Create.
- Dans votre projet, allez sur la page des APIs & Services > Dashboard.
- Cliquez sur Enable APIs and Services.
- Recherchez "Google Calendar API" et activez-la.
- Allez dans APIs & Services > Credentials.
- Cliquez sur Create Credentials et sélectionnez OAuth 2.0 Client IDs.
- Configurez un écran de consentement pour l'API, puis sélectionnez Web Application comme type d'application.
- Configurez les Authorized Redirect URIs à
http://localhost
(vous pouvez aussi mettrehttp://localhost:3000
si nécessaire). - Téléchargez le fichier
credentials.json
, qui contient vos identifiants OAuth 2.0, et placez-le dans le répertoire du projet.
- Allez sur Google Calendar.
- Sélectionnez le calendrier dans lequel vous souhaitez synchroniser vos cours.
- Cliquez sur les trois points à droite du nom du calendrier, puis sur Paramètres et partage.
- Faites défiler jusqu'à la section Intégrer le calendrier.
- Copiez l'ID du calendrier qui ressemble à une adresse e-mail (par exemple,
[email protected]
ou une autre adresse).
Assurez-vous d'avoir un compte valide sur Ecole Directe. Vous aurez besoin de votre identifiant et mot de passe pour le connecter à l'API.
- Téléchargez et installez la dernière version de Node.js si ce n'est pas déjà fait.
-
Clonez ce projet ou téléchargez-le sur votre machine locale.
-
Ouvrez un terminal dans le répertoire du projet.
-
Installez les dépendances Node.js avec la commande suivante :
npm install node.js npm install axios npm install googleapis@105 @google-cloud/[email protected] --save
Cela installera toutes les bibliothèques nécessaires.
Dans le répertoire du projet, créez un fichier const.json
et configurez-le avec vos informations :
{
"ecoleDirecte": {
"identifiant": "VOTRE_IDENTIFIANT",
"motdepasse": "VOTRE_MOTDEPASSE"
},
"googleCalendar": {
"calendarId": "VOTRE_CALENDAR_ID"
},
"qcmResponses": {
},
"settings": {
"daysToCheck": 7
}
}
ecoleDirecte.identifiant
: Votre identifiant Ecole Directe.ecoleDirecte.motdepasse
: Votre mot de passe Ecole Directe.googleCalendar.calendarId
: L'ID du calendrier Google que vous avez récupéré plus tôt.qcmResponses
: Associe les questions QCM à leurs réponses voir Obtention des différentes questions QCMsettings.daysToCheck
: Le nombre de jours à synchroniser à partir de la date actuelle.
Assurez-vous que le fichier credentials.json
obtenu lors de la création de votre projet Google Cloud est bien placé dans le répertoire du projet.
Afin d'obtenir les différentes questions QCM, il vous faudra envoyer des requetes de connection à l'aide de Get-QCM.js
.
Ce code permet d'envoyer une requête de connection à Ecole Directe et vous renvoie la question QCM , afin d'obtennir votre liste de Question:Réponse veuillez executer ces actions :
-
Exécutez la commande suivante :
node Get-QCM.js
Cela vous retournera une question ainsi que les réponses proposées.
-
Retournez le numero de réponse correct, les informations seront enregistrés dans le fichier
const.json
Le code sera relancera tout seul en as d'erreur ou en cas de question déjà présente dans le fichier const.js, il s'arretera au bout de 10 executions sans nouvelles questions.
Suivez ces étapes pour exécuter le script :
-
Ouvrez un terminal dans le répertoire du projet.
-
Exécutez la commande suivante :
node .\src\main.js
-
Si votre code est bien configuré, votre emplois du temps devrait être importé dans votre Google Calendar pour les jours spécifiées dans
const.json
.
Warning
En cas d'erreur liée au fichier token.json
, veuillez executer la commande node .\src\Get-token.js
afin d'executer manuellement le script d'initialisation.
- Modifier le nombre de jours : Pour changer le nombre de jours à synchroniser (par exemple, 7 jours, 14 jours, etc.), modifiez simplement la valeur de
daysToCheck
dans le fichierconst.json
. - Réponses au QCM : Si votre compte Ecole Directe utilise la double authentification avec des questions QCM, ajoutez les paires question-réponse en base64 dans la section
qcmResponses
du fichierconst.json
.
- Erreur de chemin des fichier
token.json
,const.json
etcredentials.json
- Erreur d'execution du code à cause d'un mauvais URL API
- Création d'un fichier
Get-QCM.js
plus simple à utiliser - Possible confusion des cours qui ont le même nom et les mêmes horaires
- Otpimisation du système de mise à jours des information des cours
- Erreur de connexion : Assurez-vous que vos identifiants Ecole Directe sont corrects et que vous n'avez pas de problème de connexion sur le site lui-même.
- Double authentification : Si la question QCM change, vous devrez ajouter la nouvelle question encodée en base64 avec sa réponse dans
const.json
. - Si d'autre problèmes surviennent, n'hésitez pas à créer une Issue ou à me faire remonter le problème par Disocrd
pika_fr
.
Note
Merci à @mrkm-dev pour sa documentation détaillée de l'API Ecole Directe sans laquelle ce petit projet n'aurai pas pu voir le jour
En suivant cette documentation, vous devriez être en mesure de synchroniser efficacement votre emploi du temps d'Ecole Directe avec votre Google Calendar.