Skip to content

Commit 6207414

Browse files
committed
Initial commit
1 parent 528544e commit 6207414

8 files changed

+489
-0
lines changed

.gitignore

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Miscellaneous
2+
*.class
3+
*.log
4+
*.pyc
5+
*.swp
6+
.DS_Store
7+
.atom/
8+
.buildlog/
9+
.history
10+
.svn/
11+
migrate_working_dir/
12+
13+
# IntelliJ related
14+
*.iml
15+
*.ipr
16+
*.iws
17+
.idea/
18+
19+
# The .vscode folder contains launch configuration and tasks you configure in
20+
# VS Code which you may wish to be included in version control, so this line
21+
# is commented out by default.
22+
#.vscode/
23+
24+
# Flutter/Dart/Pub related
25+
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
26+
/pubspec.lock
27+
**/doc/api/
28+
.dart_tool/
29+
build/

.metadata

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled and should not be manually edited.
5+
6+
version:
7+
revision: "4cf269e36de2573851eaef3c763994f8f9be494d"
8+
channel: "stable"
9+
10+
project_type: package

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 0.0.1
2+
3+
* TODO: Describe initial release.

README.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
> This package is only in French because it is only for certain French internet boxes.
2+
3+
Une librairie pour faciliter l'utilisation de l'API de Freebox OS. Facilite l'authentification et l'envoi de requêtes afin de pouvoir intéragir simplement avec une Freebox.
4+
5+
## Fonctionnalités
6+
7+
L'API de Freebox OS est capable d'exécuter de nombreuses actions sur la box, comme la gestion des téléchargements et des fichiers sur le disque interne, ou la gestion des contacts et des appels sur le téléphone fixe. Cependant, l'authentification et la première connexion (register) sont assez complexes. Cette librairie permet de simplifier ces étapes, pour vous offrir une meilleure expérience de développement.
8+
9+
10+
## Utilisation
11+
Importez la librairie
12+
```dart
13+
import 'package:freebox/freebox.dart';
14+
```
15+
### Enregistrement
16+
Cette étape ne doit être effectuée **qu'une seule fois**, et permet d'obtenir un `appToken`. C'est une étape obligatoire pour utiliser l'API de Freebox OS. L'écran d'affichage de la Freebox demandera à l'utilisateur de confirmer l'opération.
17+
18+
```dart
19+
await FreeboxClient.registerFreebox(
20+
appId: 'fbx.exemple',
21+
appName: 'Exemple',
22+
appVersion: '1.0.0',
23+
deviceName: 'iOS',
24+
verbose: true, // Optionnel, true par défaut
25+
);
26+
```
27+
28+
### Authentification
29+
L'étape d'authentification permet d'obtenir un token de session, qui est nécessaire pour effectuer des requêtes à l'API.
30+
```dart
31+
var client = FreeboxClient(
32+
appToken: "<Obtenu lors de l'enregistrement>",
33+
appId: "fbx.exemple",
34+
apiDomain: "<Obtenu lors de l'enregistrement>",
35+
httpsPort: 0, // "<Obtenu lors de l'enregistrement>"
36+
verbose: false, // Optionnel, false par défaut
37+
);
38+
39+
await client.authentificate();
40+
```
41+
42+
### Requêtes
43+
Une fois authentifié, vous pourrez effectuer des requêtes à l'API de Freebox OS.
44+
45+
```dart
46+
var system = await client.fetch(
47+
url: "v8/system",
48+
method: "GET", // Optionnel, GET par défaut
49+
parseJson: true, // Optionnel, true par défaut
50+
);
51+
52+
print(system); // Affiche les informations système de la Freebox
53+
```
54+
> Le header `Content-Type` est automatiquement défini à `application/json` s'il n'est pas déjà défini.
55+
56+
#### Récupérer un fichier
57+
Pour récupérer un fichier, rien de plus simple :
58+
```dart
59+
var audioData = await client.fetch(
60+
url: "/v10/call/voicemail/$audioId.au/audio_file",
61+
parseJson: false, // A ne pas oublier !
62+
);
63+
64+
// Créé un fichier audio_file.wav qui va contenir le fichier audio
65+
final file = File('audio_file.wav');
66+
await file.writeAsBytes(audioData);
67+
```
68+
69+
Ici, on récupère un fichier audio de la messagerie vocale, et on le stocke dans un fichier audio_file.wav.
70+
71+
72+
## Informations supplémentaires
73+
74+
- Vous trouverez la liste des endpoints disponibles dans la documentation de l'API de Freebox OS.
75+
76+
Retrouvez tous nos projets pour Freebox sur le [Github de Freebox Tools](https://github.com/Freebox-Tools)

analysis_options.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
include: package:flutter_lints/flutter.yaml
2+
3+
# Additional information about this file can be found at
4+
# https://dart.dev/guides/language/analysis-options

0 commit comments

Comments
 (0)