Closed Thierry-LUX closed 4 months ago
Si jamais cela peut aider je l'ai implémenté dans ecoledirecte-client
: https://github.com/mdeverdelhan/ecoledirecte-client/blob/ecoledirecte-client-1.3/src/main/java/eu/verdelhan/ecoledirecte/EcoleDirecteClient.java#L142
Normalement un POST sur https://api.ecoledirecte.com/v3/connexion/doubleauth.awp?verbe=get
en fournissant un en-tête X-Token
(comportant le jeton obtenu au login, sur code 250) et le corps data
vide ({}
) doit suffire.
Attention : ne pas oublier le verbe=get
en paramètre de requête (et verbe=post
pour envoyer la réponse choisie).
Un GRAND merci @mdeverdelhan ! ->tes explications, ton code source et quelques recherches supplémentaires m'ont apporté la solution.
Pour les autres utilisant PowerShell, voici comment je faisais avant l'ajout du QCM
$body = 'data={
"uuid": "",
"identifiant": "user",
"motdepasse": "password",
"isReLogin": false
}'
$headers = @{
'Content-Type'= 'application/x-www-form-urlencoded'
}
$userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
$url_doubleauth = 'https://api.ecoledirecte.com/v3/connexion/doubleauth.awp?verbe=get'
$url_login = 'https://api.ecoledirecte.com/v3/login.awp'
$url_enfant = 'https://api.ecoledirecte.com/v3/eleves/xxxx/notes.awp?verbe=get'
$response = Invoke-restmethod -Uri $url_login -Method 'POST' -Headers $headers -Body $body -UserAgent $userAgent
$token=$response.token
le token obtenu était alors injecté au Body suivant le format ci dessous
$body = "data={`n `"token`": `"$token`"`n}"
$response = Invoke-RestMethod -Uri $url_enfant -Method 'POST' -Headers $headers -Body $body -UserAgent $userAgent
Et toute la suite fonctionnait sans soucis.
Depuis l'introduction du QCM, j'éssayais à tord d'utiliser ce token via la meme manière (dans le body)
$qcm = Invoke-restmethod -Uri $url_doubleauth -Method 'POST' -Headers $headers -Body 'data={}' -UserAgent $userAgent
Mais à chaque fois j'avais un code 225 - Paramètres spécifiés incorrects !"
Il s'avère, que contrairement à leurs autres URLs, celle de doubleauth.awp n'accepte pas le token sous format token: xxxx dans le Body mais a besoin du Token dans le Header sous format X_Token = xxx
donc ceci ne fonctionne pas pour doubleauth.awp (mais fonctionne pour toutes les autres URLs)
$body = "data={`n `"token`": `"$token`"`n}"
$qcm = Invoke-restmethod -Uri $url_doubleauth -Method 'POST' -Headers $headers -Body 'data={}' -UserAgent $userAgent
alors que ceci fonctionne:
$headers = @{"X-Token" = "$token"}
$qcm = Invoke-restmethod -Uri $url_doubleauth -Method 'POST' -Headers $headers -Body 'data={}' -UserAgent $userAgent
Voila, si ça peux en dépanner d'autres :-)
Encore merci!
je ferme l'issue :-)
bonjour à tous,
Un grand bravo pour tout ce travail, génial. Je bloque sur cette nouvelle authentification QCM depuis plusieurs jours, je ne comprends pas. Pas un très bon niveau, et seulement en PowerShell en plus. Je précise qu'il n'y a pas de soucis avec le projet, mais j'ai un soucis de syntaxe sous PowerShell.
Depuis plusieurs année, j'ai un script, qui s'authentifie avec mon user/pass (en tant que parents), et qui ensuite utilise le token récupérer pour boucler sur mes enfants et aller chercher les nouvelles notes et me notifier sur Telegram.
Tout marchait jusqu'à implementation du QCM. J'ai gagné quelques semaines en utilisant l'userAgent qui allait bien, mais la c'est de nouveau mort. Pas le choix il faut que j'implémente la gestion du QCM :-)
La doc est très bien faite, je comprends les réponses que je devrais avoir, j'ai bien compris ce que je devrais renvoyer, etc....
Mon soucis est dès le début, je ne reçois pas les questions/réponses, mais à chaque fois un: @{code=225; data=; message=Paramètres spécifiés incorrects !; host=HTTP67}
Pour passer le user/password initial je fais:
J'obtient bien le token (depuis des années et c'est ce token que je passe à tous mes calls suivants pour mes boucles avec les enfants et récuperer leur notes.).
J'obtiens également ce nouveau code 250; donc 2eme étape: récupérer les questions/réponses du QCM, je fais
j'ai aussi éssayé
$response = Invoke-WebRequest 'https://api.ecoledirecte.com/v3/connexion/doubleauth.awp' -Headers $headers -Body $body -UserAgent $userAgent
J'ai tourné cela dans tous les sens, avec et sans headers, avec et sans Body, avec et sans UserAgent, en passant le token et sans, en faisant un GET ou un POST; mais rien n'y fait , j'ai toujours cette erreur 225
D'apres la doc il faut faire un GET avec simplement Data vide.
meme avec CURL ça passe pas:
Quelqu'un pourrait svp me pointer sur la commande à envoyer en Powershell pour récuperer ces questions/réponses ? ou bien la commande curl équivalente et je la porterais.
D'avance un GRAND merci !