PHP code example of nathnat / pronote-php

1. Go to this page and download the library: Download nathnat/pronote-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

nathnat / pronote-php example snippets




use Pronote\Pronote;



ronote\Pronote;

// Initialise le client
$client = new Pronote('https://demo.index-education.net/pronote/eleve.html', 'demonstration', 'pronotevs', /*, cas*/);

// Connecte le client à Pronote
$client->login();

echo "Connecté en tant que {$client->user->name}\n";

$today = new DateTime();
$timetable = $client->timetable($today); // Récupére l'emploi du temps du jour

foreach ($client->periods as $period) {
    $grades = $period->grades();
    foreach ($grades as $grade) { // Parcourt toutes les notes
        echo "{$grade['value']}/{$grade['scale']}\n"; // Affiche la note dans ce style : 15/20
    }
}

// Initialise le client
$client = new Pronote('https://demo.index-education.net/pronote/eleve.html', 'demonstration', 'pronotevs' /*, cas*/);

// Connecte le client à Pronote
$client->login();

// On inclut la classe
use Pronote\PronoteCas;

// Initialise le client avec ici l'interface de l'Ile de France
$client = new Pronote(
    'https://demo.index-education.net/pronote/eleve.html',
    'demonstration',
    'pronotevs',
    PronoteCas::ILE_DE_FRANCE
);

$today = new DateTime();
$timetable = $client->timetable($today); // Récupére l'emploi du temps du jour

// Récupère les cours entre le 25 février 2023 et le 5 mars 2023
$timetable = $client->timetable(
    DateTime::createFromFormat('d/m/Y', '25/02/2023'),
    DateTime::createFromFormat('d/m/Y', '5/03/2023'),
);

Array
(
    [0] => Array
        (
            [start] => 27/02/2023 09:00:00 // L'heure de début du cours
            [end] => 27/02/2023 10:00:00   // L'heure de fin du cours
            [color] => #2338BB             // La couleur de la case du cours sur Pronote
            [status] => 'Cours annulé'     // Le statut du cours (Cours annulé, Prof. absent, etc.)
            [subject] => FRANCAIS          // La matière étudiée
            [teacher] => GALLET B.         // Le nom du professeur
            [room] => 105                  // La classe où a lieu le cours
        )
    ...

$today = new DateTime();
$timetable = $client->homework($today); // Récupére les devoirs du jour

// Récupère les devoirs entre le 25 février 2023 et le 5 mars 2023
$timetable = $client->homework(
    DateTime::createFromFormat('d/m/Y', '25/02/2023'),
    DateTime::createFromFormat('d/m/Y', '5/03/2023'),
);

Array
(
    [0] => Array
        (
            [subject] => FRANCAIS                            // La matière du devoir
            [description] => <div>Exercice 36 page 132</div> // La description du devoir
            [backgroundColor] => #FEA7FC                     // La couleur de fond du devoir
            [isDone] => false                                // Si le devoir est fait
            [date] => 15/03/2023                             // La date de rendu du devoir
        )
    ...

  Array
  (
      [0] => Array
          (
              [title] => DS1 Civilisations     // La description de la note
              [value] => 13                    // La note de l'élève
              [scale] => 20                    // Le barème
              [subject] => HISTOIRE-GEOGRAPHIE // La matière de la note
              [average] => 11,89               // La moyenne de la classe
              [max] => 15                      // La note la plus basse dans la classe
              [min] => 10                      // La note la plus haute dans la classe
              [coefficient] => 2
              [date] => 26/09/2022             // La date de la note
              [isBonus] => false               // Si la note est bonus : seul les points au dessus de 10 comptent
              [isOptionnal] => false           // Si la note est optionnel : elle compte seulement si elle augmente la moyenne
              [isScaledTo20] => false          // Si la note est ramené sur 20
          )
      ...
  

  Array ()
      [0] => Array
          (
              [name] => ANGLAIS LV1    // Le nom de la matière
              [average] => Array
                  (
                      [student] => 17  // La moyenne de l'élève dans la matière
                      [class] => 13,79 // La moyenne de la classe dans la matière
                      [min] => 6,5     // La plus basse moyenne de la classe
                      [max] => 18      // La plus haute moyenne de la classe
                      [scale] => 20    // Le barème des moyennes
                  )

              [color] => #B76AFD       // La couleur de fond de la matière dans l'emploi du temps
              [grades] => Array ()     // Un tableau contenant toutes les notes de la matière au même format que celles renvoyées par la fonction `->grades()`
          )
      ...
  

  $moyennes = $client->periods[1]->overallAverage();

  echo 'Moyennes du ' . $client->periods[1]->name . " : \n";
  print_r($moyennes);
  

  Moyennes du Trimestre 2 : 
  Array
  (
      [student] => 14,33 // La moyenne de l'élève
      [class] => 11,54   // La moyenne de la classe
      [scale] => 20      // Le barème des moyennes
  )
  

$absences = $client->periods[1]->absences(); // Fonction pour récupérer les absences renvoit :

Array
(
    [0] => Array
        (
            [from] => 02/02/2023 09:00:00 // La date de début de l'absence
            [to] => 02/02/2023 10:00:00   // La date de fin de l'absence
            [isJustified] => true         // Si l'absence est justifiée
            [hoursMissed] => 1h00         // Le nombre d'heure ratée
            [daysMissed] => 1             // Le nombre de jour raté
            [reasons] => Array            // La liste des raisons de l'absene
                (
                    [0] => L-Rendez-vous médical
                )
        )
    ...

$retards = $client->periods[1]->delays(); // Fonction pour récupérer les retards renvoit :

Array
(
    [0] => Array
        (
            [date] => 27/01/2023 09:00:00 // La date du retard
            [minutesMissed] => 5          // Le nombre de minute ratée
            [justified] => false          // Si l'absence est justifié
            [justification] =>            // La justification du retard
            [reasons] => Array            // La liste des raisons du retard
                (
                    [0] => PROBLEME DE REVEIL
                )

        )
    ...

$punitions = $client->periods[1]->punishments(); // Fonction pour récupérer les punitions renvoit :

Array
(
    [0] => Array
        (
            [given] => 01/09/2022                              // La date à laquelle la punition a été donnée
            [isExclusion] => false                             // Si la punition est une exclusion
            [isDuringLesson] => true                           // Si la punition est durant un cours
            [homework] => Exercices 1 à 18 p283-284            // Les devoirs donnés par la punition
            [homeworkDocuments] => Array()                     // Les documents attachés pour ces devoirs
            [circonstances] => Insultes suite à une réprimande // Les circonstances de la punition
            [circonstancesDocuments] => Array()                // Les documents pouvant accompagné les circonstances
            [nature] => Retenue                                // La nature de la punition
            [reasons] => Array                                 // La liste des raisons de la punition
                (
                    [0] => Violence verbale
                )

            [giver] => M. PROFESSEUR M.                        // Le nom de la personne ayant donné la punition
            [isSchedulable] => true                            // Si la punition est programmable
            [schedule] => Array                                // Liste des dates pour lesquelles la punition est programmé
                (
                    [0] => 07/09/2022
                )
            [duration] => 60                                   // La durée de la punition
        )
    ...
bash
$ composer