Description de la tâche
Bonjour à tous,
pour info, après plusieurs essais infructeux dans tous les sens j'ai enfin réussi à obtenir un session token
la doc API intégrée à la freebox (https://mafreebox.freebox.fr/doc/index.html#) est erronée concernant le calcul du "password". ce password est necessaire dans la requête du session token
—> dans la doc est écrit —> dans le paragraphe "Obtaining a session_token"/"password string" —> password = hmac-sha1(app_token, challenge) (←– CECI NE FONCTIONNE PAS)
avec le password ainsi calculé, j'obtenais en réponse à la requête de session token (POST http)
Status Code: 403 Forbidden
msg: Erreur d'authentification de l'application
error_code: invalid_token
Pour que ça fonctionne, il faut inverser app_token et challenge dans la formule
(CECI CI-DESSOUS FONCTIONNE) (variables challenge et app_token préalablement attribuées bien sûr)
#en php
$password = hash_hmac("sha1", $challenge, $app_token);
#ou en bash
password=$(echo -n $challenge | openssl sha1 -hmac $app_token | cut -d '=' -f2 | sed 's/ //g')
—> et avec le bon password, ça passe mieux —> session_token (enfin) reçu
en remarques complémentaires (de ce que j'en ai compris),
- l'app_token une fois sollicité/autorisé/validé est pérenne
- le challenge par contre, à une durée de validité courte (30 secondes),
validité courte qui est donc conférée au password.
Et donc pour réussir l'obtention du session_token,
la requête/obtention du challenge, le calcul du password et la requête du session_token
doivent être fait pendant cette période de validité de 30 secondes.
- je suppose que le session_token est relativement pérenne
(pas pu tester longtemps) mais on sait maintenant comment en solliciter un autre...
HTH, cordialement, hého
|