freebox_api_php/README.md

178 lines
5.9 KiB
Markdown
Raw Normal View History

# Freebox v6 PHP API v3
2016-05-31 22:09:45 +02:00
![stable](https://poser.pugx.org/alphayax/freebox_api_php/v/stable)
![unstable](https://poser.pugx.org/alphayax/freebox_api_php/v/unstable)
2016-05-26 19:05:44 +02:00
![pakagist](https://img.shields.io/packagist/v/alphayax/freebox_api_php.svg)
2016-06-07 21:38:02 +02:00
[![Build Status](https://travis-ci.org/alphayax/freebox_api_php.svg?branch=master)](https://travis-ci.org/alphayax/freebox_api_php)
[![Coverage](https://api.codacy.com/project/badge/Coverage/f3569cf671f04b8ab6d699be3fd011e5)](https://www.codacy.com/app/alphayax/freebox_api_php?utm_source=github.com&utm_medium=referral&utm_content=alphayax/freebox_api_php&utm_campaign=Badge_Coverage)
2016-06-11 21:28:52 +02:00
[![Codacy](https://api.codacy.com/project/badge/Grade/f3569cf671f04b8ab6d699be3fd011e5)](https://www.codacy.com/app/alphayax/freebox_api_php?utm_source=github.com&utm_medium=referral&utm_content=alphayax/freebox_api_php&utm_campaign=Badge_Grade)
2016-05-26 19:05:44 +02:00
![license](https://img.shields.io/packagist/l/alphayax/freebox_api_php.svg)
2016-05-26 19:05:44 +02:00
2016-03-06 20:33:56 +01:00
Implementation PHP de l'API de la freebox (dans sa version 3).
## Prérequis
Ce projet est basé sur **composer**.
Pensez à installer les dependences :)
2016-03-06 20:43:58 +01:00
## Fonctionnalités
L'intégralité des fonctionnalités de l'API Freebox (v3) sont implémentées :
2016-03-06 20:43:58 +01:00
2016-06-09 22:11:34 +02:00
- [AirMedia](docs/AirMedia.md)
- [Call](docs/Call.md)
- FileSystem
- FileSystem (Core)
2016-05-16 13:21:21 +02:00
- FsTask
- FsOperation
- FsListing
2016-05-22 18:15:08 +02:00
- FileUpload
2016-05-16 13:21:21 +02:00
- FileSharing
2016-05-24 22:01:52 +02:00
- Download
2016-05-24 21:33:30 +02:00
- Download (core)
- Download Stats
2016-05-24 21:59:03 +02:00
- Download Files
2016-05-26 22:03:04 +02:00
- Download Configuration
2016-05-28 09:46:33 +02:00
- RSS Feed
2016-05-26 23:12:02 +02:00
- Bittorent
- Trackers
- Peers
2016-05-27 20:09:17 +02:00
- BlackList
2016-05-28 10:40:16 +02:00
- RRD
2016-06-09 13:31:51 +02:00
- Storage
- Disk
- Partition
2016-03-06 20:43:58 +01:00
- Configuration
2016-05-22 14:48:14 +02:00
- Connection
- Connection (Core)
- xDSL
- FTTH
- DynDns
2016-03-06 20:43:58 +01:00
- DHCP
- FTP
- LAN
- Lan (Core)
- Lan Browser
- Wake On Lan
2016-05-28 13:34:17 +02:00
- Network Share
- Samba
- Afp
2016-05-28 15:07:31 +02:00
- Switch
- Statistics
- Status
- Config
2016-03-06 20:43:58 +01:00
- System
2016-05-17 12:38:03 +02:00
- LCD
- NAT
- Dmz
- Port Forwarding
- Incoming Port
2016-05-24 22:37:05 +02:00
- UPnP
- AV
2016-05-25 23:20:52 +02:00
- IGD
2016-05-31 22:09:45 +02:00
- VPN
2016-06-01 21:53:35 +02:00
- Client
2016-05-31 22:09:45 +02:00
- Server
- WiFi
- Config (core)
2016-06-05 21:57:59 +02:00
- Access Points
2016-06-05 22:15:02 +02:00
- AP (core)
- Allowed Comb
- Stations
2016-06-08 13:19:13 +02:00
- Radar
2016-06-08 13:22:48 +02:00
- Channel Usage
2016-06-08 13:19:13 +02:00
- BSS
2016-06-08 19:39:33 +02:00
- Planning
- Mac Filter
2016-06-11 21:28:52 +02:00
- Parental Control
- Filter
- Planning
2016-03-06 20:43:58 +01:00
## Utilisation
### Application
La premiere étape est de créer une application.
La seconde est de demander l'autorisation de connexion a la freebox (cf: cadrant led du Freebox Server)
La derniere est de récuperer une session pour utiliser les divers services de l'API
```php
$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.example', 'Freebox PHP API Exemple', '0.0.1');
$App->authorize();
$App->openSession();
```
### Services
2016-03-06 20:33:56 +01:00
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.
2016-05-21 11:03:05 +02:00
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
2016-05-21 11:03:05 +02:00
3. Affichage du modele retourné
```php
$System = new \alphayax\freebox\api\v3\services\config\System( $App);
/** @var \alphayax\freebox\api\v3\models\SystemConfig $SystemConfig */
$SystemConfig = $System->getConfiguration();
2016-05-21 11:03:05 +02:00
print_r( $SystemConfig);
```
Résultat :
```php
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
)
2016-03-06 20:33:56 +01:00
```
2016-03-06 20:43:58 +01:00
## Exemples
2016-03-06 20:33:56 +01:00
Les exemples sont disponibles dans le repertoire `exemple`. Ils sont classés par services :
2016-05-14 15:54:59 +02:00
- `AirMedia` : Exemple de lancement d'une video sur le Freebox Player
2016-05-21 22:39:24 +02:00
- `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
2016-05-16 13:21:21 +02:00
- `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
2016-05-22 14:48:14 +02:00
- `Connection` : Récupere diverses informations sur la connexion de la freebox (xDSL, FTTH, DynDns...)
2016-05-21 11:03:05 +02:00
- `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
2016-05-17 12:38:03 +02:00
- `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
2016-05-21 11:03:05 +02:00
- `System` : Affichage de la configuration système de la freebox
2016-05-25 23:20:52 +02:00
- `UPnP` : Affichage des configuration UPnP
2016-05-31 22:09:45 +02:00
- `VPN` : Affiche la configuration des serveurs VPN, liste les utilisateurs...
- `WiFi` : Affiche la configuration globale du wifi
- `download`
2016-05-26 22:03:04 +02:00
- `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
2016-05-26 23:12:02 +02:00
- `Bittorrent` : Affiche des infos sur des telechargements bittorent
2016-05-31 22:09:45 +02:00