Freebox Server (Delta V7 / Revolution V6 / Server Mini 4K)

  • État Close
  • Type de tâche Anomalie
  • Catégorie Freebox OS → API
  • Assignée à Personne
  • Système d'exploitation Tous
  • Sévérité Basse
  • Priorité Normale
  • Basée sur la version 2.0.1
  • Due pour la version Non décidé
  • Date d'échéance Non décidé
  • Votes 0
  • Privée Non

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 !

Close par  Romain FLIEDEL (rfliedel)
Wednesday 31 July, 2013 12:51:08
Raison de clôture :  Impossible à reproduire

Cette tache ne dépend pas d'autre tache

Nilpohc (Nilpohc)
Wednesday 24 July, 2013 10:33:54

Pas mieux avec la version 2.0.2

ChristopheV (ChristopheV)
Wednesday 24 July, 2013 15:23:39

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 (Nilpohc)
Wednesday 24 July, 2013 15:55:24

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 (Nilpohc)
Wednesday 24 July, 2013 16:48:28

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 ?

ChristopheV (ChristopheV)
Thursday 25 July, 2013 07:05:33

À 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 (Nilpohc)
Thursday 25 July, 2013 10:14:22

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...