Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

  • État Fermée
  • Pourcentage achevé
    100%
  • Type Anomalie
  • Catégorie Freebox OS → API
  • Assignée à Personne
  • Système d'exploitation Tous
  • Sévérité Basse
  • Priorité Très Basse
  • Basée sur la version 2.0.1
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes
  • Privée

FS#12778 - Freebox OS 2.0.1 : Appel API renvoie des résultats étranges

Bonjour,

J’essaie de prendre en main l’API du nouveau firmware, et j’ai quelques déboires inexplicables. Dans l’ordre logique des choses :

Le tracking de la demande d’autorisation (GET /api/v1/login/authorise/{le track_id reçu}) répond d’abord avec un “invalid_request” et un message “Requête invalide (404)” mais si j’insiste (boucle d’appels) ça passe assez vite (success = true) et j’ai bien “status = pending” et la suite est OK jusqu’à “status = granted”.

⇒ apparemment un problème de tempo entre la demande et l’arrivée du prompt sur le boitier de la Freebox ?

Ensuite tout fonctionne jusqu’à l’ouverture d’une session. J’ai ensuite deux problèmes loufoques :

La demande de la liste des appels (GET sur /api/v1/call/log/) me renvoie systématiquement “invalid_request” et un message “Requête invalide (404)”. Mon en-tête “X-Fbx-App-Auth” semble correct car si j’en envoie un falsifié je reçois un “auth_required” à la place.

La demande de la liste des contacts (GET /api/v1/contact/) passe (success = true) mais je reçois un objet ContactEntry vide à l’exception de l’id qui change à chaque appel (?!).

Pour comparaison, j’ai fait le test de me connecter dans mon navigateur à l’interface puis de lancer ces deux requêtes manuellement dans un autre onglet et là tout fonctionne parfaitement.

Mon programme de test est en PHP 5.3.13 et basé sur libcurl (j’aurais préféré tout en HTML + javascript/ajax mais la Freebox refuse les requêtes CORS).

Merci d’avance !

Fermée par  rfliedel
31.07.2013 12:51
Raison de la fermeture :  Impossible à reproduire
Nilpohc a commenté le 24.07.2013 10:33

Pas mieux avec la version 2.0.2

Aucun problème en ce qui me concerne sur l’auth et sur /api/v1/call/log/, et pourtant je suis bien en 2.0.2 également (et j’utilise PHP 5.4.4).

Nilpohc a commenté le 24.07.2013 15:55

Flûte alors. J’utilise une install WAMP 2.2E x64 avec un libcurl patché. Je vais retenter avec du 32bit officiel pour voir, sait-on jamais.

Nilpohc a commenté le 24.07.2013 16:48

Bon, pas mieux. Peut-être ai-je mal compris la doc ? Voici ce que je fais :

1) GET http://mafreebox.freebox.fr/api/v1/login/ ⇒ me renvoie un “challenge”

2) POST http://mafreebox.freebox.fr/api/v1/login/session/ avec comme valeur pour “password” le résultat de hash_hmac(’sha1’, $challenge, $app_token);
⇒ me renvoie les permissions de mon app ainsi qu’un “session_token”

3) GET http://mafreebox.freebox.fr/api/v1/call/log/ avec un en-tête HTTP supplémentaire “X-Fbx-App-Auth” qui vaut le “session_token” précédent.

Qu’est-ce que je fais de travers ?

À priori ça m’a l’air bon. J’ai commencé un helper PHP pour l’API, essaye avec pour voir : https://github.com/cvergne/FreeboxOS_Client

Nilpohc a commenté le 25.07.2013 10:14

L’analyse du RestAPIClient m’a révélé le problème : je faisais un appel à curl_init() au début puis un appel à curl_close() à la fin, au lieu de le faire pour chaque requête curl ! J’avoue avoir peu d’expérience avec curl mais c’est ainsi que je l’avais utilisée jusqu’ici et je n’avais pas rencontré de souci. Comme quoi...

Merci beaucoup pour l’éclairage en tout cas et bonne continuation pour ton helper, je vais pouvoir enfin m’occuper du mien :-)

Pour ma part, ce ticket est clos.

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche