Litarvan/pronote-api

Cannot read property 'action' of undefined

Closed this issue · 18 comments

Bonjour, j'essaye d'utiliser le module node et quand je lance mon programme, il me renvoie une erreur qui viendrait du module

[...]\test-pronote-api>node index
TypeError: Cannot read property 'action' of undefined
    at submitForm ([...]\test-pronote-api\node_modules\pronote-api\src\cas\api.js:8:66)
    at login ([...]\test-pronote-api\node_modules\pronote-api\src\cas\generics\kdecole-educonnect.js:20:17)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async getStart ([...]\test-pronote-api\node_modules\pronote-api\src\auth.js:67:12)
    at async login ([...]\test-pronote-api\node_modules\pronote-api\src\auth.js:19:19)
    at async main ([...]\test-pronote-api\index.js:11:21)

J'essaye d'utiliser le cas monbureaunumerique-educonnect et l'url cas.monbureaunumerique.fr

Merci d'avance à ceux qui pourront m'éclairer

Hello,

Ton programme resemble a quoi ?

Cdt
Thibaut

const pronote = require('pronote-api')

// Exemple​
const url = "cas.monbureaunumerique.fr";
const username = "XXXXX";
const password = "XXXX";
const cas = "monbureaunumerique-educonnect"

async function main()
{
    const session = await pronote.login(url, username, password, cas);
    
    console.log(session.user.name); // Affiche le nom de l'élève
    console.log(session.user.studentClass.name); // Affiche la classe de l'élève
    
    const timetable = await session.timetable(); // Récupérer l'emploi du temps d'aujourd'hui
    const marks = await session.marks(); // Récupérer les notes du trimestre
    
    console.log(`L'élève a ${timetable.length} cours aujourd'hui`); 
    console.log(`et a pour l'instant une moyenne de ${marks.averages.student} ce trimestre.`);
    
    // etc. les fonctions utilisables sont 'timetable', 'marks', 'contents', 'evaluations', 'absences', 
    // 'homeworks', 'infos', et 'menu', sans oublier les champs 'user' et 'params' qui regorgent d'informations.
}

main().catch(err => {
    if (err.code === pronote.errors.WRONG_CREDENTIALS.code) {
        console.error('Mauvais identifiants');    
    } else {
        console.error(err);
    }
});

soit juste une copie de l'exemple donné

C'est normal ton url doit être celui de ton pronote que tu est sur la page de ton pronote et non le lien de ton ENT

Cdt
Thibaut

aaah je me suis fait avoir par les CAS ^^'

du coup je dois mettre ma page pronote soit [...].fr/pronote ?

Celà me renvois "mauvais identifiants" 😕
Est ce que le fait que je sois obliger d'utiliser un compte educonnect doit me faire changer de lien et donc ne pas utiliser celui de base?

Cela depend de comment tu te connect

avec l'api ou à la main ?

A la main, pas quel site tu passe pour allez a l'ent

dans l'ordre :
cas3.e-lyco.fr
educonnect.education.gouv.fr
et enfin pronote

Tu arrive a te connecter via ce lien ? :
https://cas.monbureaunumerique.fr/login

Cordialement
Thibaut

accès non autorisé

Ok donc tu utilise le mauvais CAS.

Et je trouve auccun CAS avec ce lien, tu peux me donner l'url exacte que je regarde ?

Cordialement
Thibaut

Tu passe par le quel ? :
image

educonnect

Du coup, j'ai trouvé comment me connecter : j'utilise du coup mon compte ATEN (qui est censé être désactivé) et cela marche bien