API Freebox OS : connexion PHP

Résolu
le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   -  
 zeverybest -
Bonjour,

Je me lance dans l' API de la freebox V6 mais je suis confronté à un problème de login, je m'explique.

1 - J'accepte mon appli : /api/v1/login/authorize/ et récupéré le app_token
2 - Je récupère le chalenge : /api/v1/login/
3 - je récupère le session_token : /api/v1/login/session/ (Problème !)

Voilà ou je bloque ci-dessous mon code :
$password = hash_hmac('sha1', $app_token, $challenge);

$url = "http://mafreebox.free.fr/api/v1/login/session/";

$fields = array(
    'app_id' => "test.local.testapp",
    'password' => $password
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$response = curl_exec($ch);
curl_close($ch);

echo '<pre>';
    print_r(json_decode($response));
echo '</pre>';


Sauf que j'obtiens toujours l'erreur invalid_token, je ne vois pas ou se trouve le problème, si quelqu'un peut me venir en aide.

Merci.

8 réponses

le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   239
 
Problème résolu,

Pour ce que rencontrerais le problème en PHP il faut inverser le app_token et le chalenge session.

le code
$password = hash_hmac('sha1', $app_token, $challenge);
devient
$password = hash_hmac('sha1', $challenge, $app_token);
4
Xen3r0 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour,

Voici un exemple d'utilisation de l'API Freebox OS :

http://www.xenero-developpement.com/2013/08/11/api-freebox-os-ouverture-dune-session/
2
cvfe13 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
J'ai le même problème que toi.
J'arrive à récupérer l'app_token et le challenge, mais je bloque à la troisième étape lorsque je veux récupérer le session_token.
J'ai bien essayé d'inverser le challenge et l'app_token lors du hash du password, mais rien n'y fait dans mon cas...
une idée ?
0
le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   239
 
As-tu accepté ton application sur ta Freebox?

Pour cela regarde les permissions sur ta Freebox :
http://mafreebox.free.fr -> Paramètres de la Freebox -> Gestion des accès -> Applications.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cvfe13 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ta réponse ...
Oui, j'ai accepté l'application.
Elle apparait bien dans l'onglet applications de l'interface de la Freebox.
Mais lorsque je veux récupérer le session_token voila ce que j'obtiens :


stdClass Object
(
[uid] => 6dd396a8b0491f42daba03f3415559c3
[success] =>
[msg] => Erreur d'authentification de l'application
[result] => stdClass Object
(
[password_salt] => fjqqlr/DNnU2LBDKEWeNlmacSjDVtn2W
[challenge] => nj+UDb0fZVeFSr6lrfKpvlR4kHzYg+XS
)

[error_code] => invalid_token
)
0
le_joker_fou Messages postés 765 Date d'inscription   Statut Membre Dernière intervention   239
 
Donc tu as autorisé ton application, et tu as récupéré le token de cette application.

Ensuite, tu fais un GET sur /api/v1/login/ duquel tu récupères la chaleur chalenge

Pour ensuite tu fais un POST sur /api/v1/login/session/ en lui envoyé le app_id et le mot de passe hashé avec la fonction :
$password = hash_hmac('sha1', $challenge, $app_token);
?
0
yugo9109
 
Hello,

J'ai le meme probleme que Cvfe13. Vous avez trouvé une solution ? (que j'alterne $challenge ou $app_token, cela ne fonctionne pas..)

Merci !
0
zeverybest
 
Idem

Meme probleme
0