Go to file
alphayax 550a5f864a Download : Fix bug in update methd 2016-09-18 14:39:25 +02:00
docs Update doc 2016-06-25 14:28:08 +02:00
exemple Add app_token generation 2016-08-06 14:57:21 +02:00
freebox Download : Fix bug in update methd 2016-09-18 14:39:25 +02:00
tests Move Model namespace 2016-06-24 21:41:17 +02:00
.gitignore Update travis & tests 2016-06-07 21:38:02 +02:00
.travis.yml Update travis & tests 2016-06-06 08:22:20 +02:00
LICENCE.md Ajout du service AirMedia 2016-05-14 15:54:59 +02:00
README.md Add App permissions infos 2016-06-23 13:31:34 +02:00
TODO.md Add Parental Control API 2016-06-09 21:18:55 +02:00
composer.json Update composer.json (For Rest minor fixs) 2016-09-04 13:52:28 +02:00
phpunit.dist.xml Update PHPUnit whitelist 2016-06-07 21:06:10 +02:00
phpunit.xml Update travis & tests 2016-06-07 21:38:02 +02:00

README.md

Freebox v6 PHP API v3

stable unstable pakagist

Build Status Coverage Codacy

License Total Downloads

Implementation PHP de l'API de la freebox (dans sa version 3).

Prérequis

Ce projet est basé sur composer. Pensez à installer les dependences :)

Fonctionnalités

L'intégralité des fonctionnalités de l'API Freebox (v3) sont implémentées :

Un document complet repertorie l'ensemble des services implémentées : services.md

Utilisation

Application

L'objet \alphayax\freebox\utils\Application représente votre application. Vous devrez créer une instance de cette classe et la transmettre aux services que vous souhaitez utiliser.

Association

Pour acceder aux services proposés par l'API de la freebox, vous deverez autoriser votre application. Cette procedure impose que vous soyez connecté au réseau local de votre Freebox lors de "l'association" et que vous ayez la Freebox a portée de main. L'application sauvegarde automatiquement le token retourné par la frebox et cette procedure ne sera plus a reproduire.

Notez que pour modifier les droits d'accès aux differents services, vous deverez passer par l'interface web locale : [http://mafreebox.freebox.fr/login.php].

Parametres de la freebox > Divers > Gestion des accès > Applications

  1. Créer un objet application.
  2. Demander l'autorisation de connexion a la freebox (cf: cadrant led du Freebox Server)
  3. Récuperer une session pour utiliser les divers services de l'API
$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.example', 'Freebox PHP API Exemple', '0.0.1');
$App->authorize();
$App->openSession();

Accès local

L'accès local est activé par défaut. Une fois l'application créer et la session ouverte, vous pouvez utiliser directement les services auquels l'application à acces.

Accès distant

Pour pouvoir utiliser l'accès distant, il vous faudra le token associé a votre application. Ce token s'obtient automatiquement après l'association faite via l'appel à la méthode authorize(). Le token est ecrit dans le fichier app_token. Il est également disponible via la methode \alphayax\freebox\utils\Application::getAppToken().

Une fois le token obtenu, vous pouvez proceder comme suit :

$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.version', 'Freebox PHP API Example (Version)', '1.0.0');
$App->setFreeboxApiHost( 'https://xxx.freeboxos.fr:17105'); // A remplacer par votre host
$App->setAppToken( 'xxxxxxxxxxxxxxxxxxxx');                 // A remplacer par votre token
$App->openSession();

Services

Les appels aux services de l'API se font par l'intermédiaire de services. Ces derniers possedent les méthodes pour récuperer, ajouter ou mettre a jour des données.

Voici un exemple d'utilisation de l'API System :

  1. Nous créons un nouveau service "System"
  2. Nous demandons de récuperer la configuration actuelle
  3. Affichage du modele retourné
$System = new \alphayax\freebox\api\v3\services\config\System( $App);
$SystemConfig = $System->getConfiguration();

print_r( $SystemConfig);

Résultat :

alphayax\freebox\api\v3\models\SystemConfig Object
(
    [firmware_version:protected] => 3.3.1
    [mac:protected] => 77:77:77:77:77:77
    [serial:protected] => 7777777777777777
    [uptime:protected] => 44 jours 16 heures 35 minutes 16 secondes
    [uptime_val:protected] => 3861316
    [board_name:protected] => fbxgw2r
    [temp_cpum:protected] => 63
    [temp_sw:protected] => 52
    [temp_cpub:protected] => 58
    [fan_rpm:protected] => 2253
    [box_authenticated:protected] => 1
)

Exemples

Les exemples sont disponibles dans le repertoire exemple. Ils sont classés par services :

  • AirMedia : Exemple de lancement d'une video sur le Freebox Player
  • Call :
    • Call : Liste les appels recus et emis sur la freebox (avec exemple de supression et de marquage comme lu)
    • Contact : Liste les contacts, ajoute et retire un numéro de téléphone au premier contact de la liste
  • FileSystem
    • fileSharing : Un exemple de partage de fichier sur le net
    • fsListing : Un exemple de scan de repertoires de la freebox
    • fsOperation : Un exemple d'operations sur le fichiers (copies, déplacement, renommage, par2..)
  • config
    • check_dns : Un script pour récuperer la configuration courrante du DHCP
    • Connection : Récupere diverses informations sur la connexion de la freebox (xDSL, FTTH, DynDns...)
    • DMZ : Récupération de la configuration de votre zone démilitarisée
    • Freeplug : Affichage de votre configuration de Freeplug
    • IncomingPort : Retourne la configuration actuelle du port d'entrée HTTP
    • LCD : Exemple de modification de la luminosité du cadrant LCD de la freebox server
    • LAN : Configuration du LAN et exploration des machines en réseau
    • PortForwarding : Exemple d'ajout d'une redirection de port
    • System : Affichage de la configuration système de la freebox
    • UPnP : Affichage des configuration UPnP
    • VPN : Affiche la configuration des serveurs VPN, liste les utilisateurs...
    • WiFi : Affiche la configuration globale du wifi
  • download
    • Download : Listage des téléchargement en cours, liste des fichiers d'un téléchargement et mise a jour de la priorité de téléchargement
    • DlConfig : Affichage des configurations de téléchargement (bt, nntp...)
    • dl_rss : Un script qui parse les flux RSS et qui rajoute en téléchagement les items correspondant a une expression réguliere
    • Bittorrent : Affiche des infos sur des telechargements bittorent
  • ParentalControl
    • Filter : Retourne la config et les filtres actuels
  • Storage
    • Disk : Retourne des informations sur les disques connectés aux freebox
    • Partition : Retourne des infos sur ces disques. Possibilité de verification ou de formatage
  • remote : Un exemple de connexion distant
  • version : Affichage de la version de l'API de la freebox