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

  1. 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
  2. Xen3r0 Messages postés 4 Statut Membre 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
  3. cvfe13 Messages postés 2 Statut Membre
     
    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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cvfe13 Messages postés 2 Statut Membre
     
    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
  7. 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
  8. 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