Vous êtes sur la page 1sur 21

Découvrir et apprendre à

programmer avec l'API Cloud Orange

Cours de formation pratique pour intégrer l'API Cloud Orange dans ses applications

Par Orange

Date de publication : 5 octobre 2016

Le Cloud Orange est adopté par des millions utilisateurs, en France, susceptibles d'être
intéressées par une application qui interagit avec leur espace de stockage. C'est pour vous
aider à adresser cette opportunité que ce tutoriel a été rédigé.

Un espace de dialogue vous est proposé sur le forum, si vous avez des remarques
concernant ce tutoriel.

Commentez
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

I - Présentation de l'API.............................................................................................................................................. 3
I-A - Inscription....................................................................................................................................................... 3
I-B - Création et paramétrage de l'application....................................................................................................... 4
II - Programmation avec l'API Cloud Orange..............................................................................................................9
II-A - Programmer pour une application en langage Python............................................................................... 10
II-A-1 - Pour démarrer.................................................................................................................................... 10
II-A-2 - Instanciation de OrangeCloudClient...................................................................................................11
II-A-3 - Lister le contenu d'un dossier............................................................................................................ 11
II-A-4 - Récupérer les informations d'un fichier ou d'un dossier.................................................................... 11
II-A-5 - Télécharger du contenu..................................................................................................................... 11
II-A-6 - Envoyer du contenu........................................................................................................................... 12
II-A-7 - Supprimer un fichier ou répertoire..................................................................................................... 12
II-A-8 - Créer un répertoire............................................................................................................................. 12
II-B - Programmer pour une application Java sous Android............................................................................... 13
II-B-1 - Pour démarrer.................................................................................................................................... 13
II-B-2 - Prérequis pour le bon fonctionnement du script................................................................................ 15
II-B-2-a - Vérifier le AndroidManifest.xml.................................................................................................. 15
II-B-2-b - Vérifier le Activity.java................................................................................................................ 16
II-B-3 - L'utilisation de l'API............................................................................................................................ 16
II-B-4 - Quelques exemples de codes............................................................................................................17
II-B-4-a - Lister le contenu du Cloud Orange........................................................................................... 17
II-B-4-b - Envoyer un fichier vers le Cloud d'Orange................................................................................18
II-C - Programmer pour une application sous iOS (Swift)................................................................................... 18
II-C-1 - Pour démarrer.................................................................................................................................... 18
II-C-2 - La classe CloudManager................................................................................................................... 20
II-C-3 - Quelques exemples de codes............................................................................................................20
II-C-3-a - Lister le contenu du Cloud Orange........................................................................................... 20
II-C-4 - Envoyer un fichier vers le Cloud d'Orange........................................................................................ 21
Remerciements Developpez.com.............................................................................................................................. 21

-2-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

I - Présentation de l'API

Orange mets à disposition plusieurs API, parmi elles, on retrouve l'API Cloud France. Celle-ci permet aux utilisateurs
de votre application d'utiliser leur Cloud Orange et ses 100 Gb de stockage confidentiel et personnel.

Vous pouvez utiliser cette API pour manipuler des fichiers, synchroniser des données, proposer du stockage à vos
utilisateurs et accéder à un marché potentiel de plusieurs millions d'utilisateurs du Cloud Orange en France.

I-A - Inscription

Avant tout, il vous faut un compte développeur, pour le créer c'est par ici.

Vous avez le formulaire d'inscription suivant qui s'affiche:

Formulaire d'inscription

Après la validation de ce formulaire, il est nécessaire de lire et d'accepter le Contrat Général d'Utilisation (CGU):

-3-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Vous êtes inscrit ! Vous recevrez un mail de confirmation de votre inscription.

I-B - Création et paramétrage de l'application

La réception d'un mail pour valider le compte et créer une première application est systématique et quasiment
instantanée.

Lors du clic sur le lien de validation, il est nécessaire de renseigner les quelques informations sur l'application qui va
utiliser l'API, un nom et une description (en anglais si possible).

Enregistrement d'une application

Le message de confirmation apparaît :

Application 'Ma Super Application' has been created. Now click ‘Add an API' to subscribe to an
API and activate your client ID.

Ce qui peut se traduire en français par :

L'application « Ma Super Application » a été créée. Vous devez désormais cliquer sur « Ajouter
une API » pour souscrire à une API et activer votre client ID.

-4-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Confirmation de la création de l'application

Il faut alors cliquer sur « ADD API », puis sélectionner « Cloud France » dans la longue liste d'API disponibles.
C'est le cinquième de la liste.

Ajout de l'API Cloud France

Ensuite, cliquez sur le bouton « Next » ;lisez et acceptez le contrat général d'utilisation. Maintenant, cliquez à nouveau
sur « Next » pour aller à l'étape suivante.

-5-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Accepter les termes d'utilisation de l'API

Attention, l'étape qui vient est très importante ! Il s'agit ajouter l'URL de retour de l'API de Cloud, c'est-à-dire que l'on
va spécifier à Orange l'endroit où l'API va devoir rediriger l'utilisateur après sa connexion au Cloud Orange.

Autrement dit : c'est sur cette URL, complétée par le Authorization_code, que l'utilisateur sera redirigé après sa
connexion. On pourra toujours modifier cette URL dans l'onglet Content Screen Details. Pour plus d'informations
sur le fonctionnement, vous pouvez lire le tutoriel sur l'authentification 3-Legged.

-6-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Ajout de l'URL

On obtient alors le message de confirmation ci-dessous :

API 'Cloud France' has been added to application 'Ma Super Application'

Ce qui peut se traduire en français par :

L'API 'Cloud France' a été ajoutée à l'application « Ma Super Application »

La demande est automatiquement approuvée et on obtient :

• un Application ID ;
• un Client ID ;
• un Client Secret ;
• un Authorization header.

-7-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Pour ceux qui l'ont remarqué, l'Authorization header est encodé en base64, il est à utiliser brut, comme fourni, il s'agit
d'une simple chaine de caractères si vous vous amusez à la décoder.

Confirmation de l'ajout de l'API à l'application

Pour voir le Client ID et le Client secret, il est nécessaire de cliquer sur le bouton « Show » puis d'entrer son mot de
passe. Après quoi, les deux informations apparaissent.

-8-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Saisie du mot de passe

Et les détails s'affichent :

Affichage des détails

II - Programmation avec l'API Cloud Orange

Maintenant, vous disposez de tout ce qui est nécessaire pour pouvoir réaliser vos appels à l'API. Il ne vous reste
qu'à utiliser les SDKs mis à disposition. Libre à vous d'utiliser votre propre langage, l'API étant une API REST, vous
pouvez utiliser PHP avec cURL ou bien d'autres langages :)

-9-
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Des SDK ont été mis à disposition pour d'autres langages :

Liste des SDK de l'API Cloud Orange


• SDK Orange Cloud pour Python ;
• SDK Orange Cloud pour Android ;
• SDK Orange Cloud pour iOS (Swift).

La liste des SDK disponibles et à jour est disponible ici.

II-A - Programmer pour une application en langage Python

II-A-1 - Pour démarrer

Pour Python, il est nécessaire de posséder … Python ! Pour télécharger l'installeur, c'est par ici.

Nous utiliserons la version 3.5 de Python pour cet exemple. Cependant, vous pouvez décider de prendre la version
2.7 pour l'intégrer à votre projet, cela n'a pas d'importance.

Une fois l'installation de Python terminée, on démarre “Python” et “IDLE”, il s'agit de l'interpréteur Python et de la
console Python. C'est dans cette dernière que nous allons coder notre application.

Interpréteur Python

La première étape va être de s'assurer du consentement de l'utilisateur dont on veut avoir accès à son compte Cloud.

Cela se fait avec la requête passer à l'URL suivant :

https://api.orange.com/oauth/v2/authorize?prompt=login
%20consent&state=orangeCloud&redirect_uri=[REDIRECT_URI]&response_type=code&client_id=[CLIENT_ID]&scope=open
%20Cloud

Pensez à utiliser la librarie urllib avec :

1. import urllib
2. f = { 'redirect_uri' : 'http://www.masuperapplication.com/'}
3. urllib.urlencode(f)

En effet, cette dernière vous facilitera la tâche. Les espaces doivent être remplacés par des %20, les slash par des
%2F.

Notre utilisateur arrivera donc sur la page de connexion Orange Cloud puis, une fois authentifié, il sera redirigé sur
la page spécifiée dans votre redirect_uri :

http://www.masuperapplication.com/?code=OFR-3987d7…d5r47eff&state=state

- 10 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Il ne vous reste plus qu'à récupérer ce code lors de la redirection. Vous devrez passer le code au constructeur de
la classe OrangeCloudClient. Lors de l'instanciation, la classe se chargera seule de l'entière gestion des tokens
d'authentification. Vous n'aurez pas à gérer cette partie.

Attention, avant de donner son consentement, l'utilisateur doit avoir accepté le contrat général d'utilisation du Cloud
Orange. S'il ne l'a pas encore accepté, la demande retournera une erreur CGU_NOT_ACCEPTED. Toutefois, une
page pour accepter le contrat est présentée automatiquement à l'utilisateur lors de sa connexion.

II-A-2 - Instanciation de OrangeCloudClient

Avant toute chose, il faut commencer par importer les bonnes librairies. Pour cela, il suffit de rentrer la ligne ci-dessous.

1. from pyorangeCloud import OrangeCloudClient

Ensuite, l'instanciation est simple, elle se fait comme suit :

1. app = {'clientId':'CLIENT_ID','clientSecret':'CLIENT_SECRET','redirectUri':'REDIRECT_URI'}
client = OrangeCloudClient(app,authCode='CODE_RECUPERE_LORS_RECUPERATION_DEMANDE_CONSENTEMENT')

II-A-3 - Lister le contenu d'un dossier

Pour lister le contenu d'un dossier, le code est le suivant :

1. folderInfo = client.listFolder()
2. for f in folderInfo['subfolders']+folderInfo['files']:
3. print (f['name'] + ' ' + f.get('type',''))

Ce code permet d'avoir la liste des fichiers et dossier à la racine du Cloud.

Pour lister le contenu d'un dossier spécifique, il est nécessaire de passer un identifiant de dossier a la méthode
« listFolder(FILE_ID) ».
Aussi, si vous souhaiter récupérer récursivement le contenu de dossier et des sous-dossiers, vous utiliserez la
méthode “listAllFiles()” en lieu et place de “listFolder()” .

II-A-4 - Récupérer les informations d'un fichier ou d'un dossier

Dans l'exemple précédent, nous avons vu comment récupérer le contenu du dossier racine. Cependant, pour passer
un FILE_ID à notre méthode, il est nécessaire de pouvoir récupérer ce FILE_ID. Pour cela, voici comment faire:

1. folderInfo = client.listFolder()
2. for d in folderInfo['subfolders']:
3. print (d['name'])
4. files = folderInfo['files']
5. for f in files:
6. details = client.getFileInfo(f['id'])
7. print ("%(name)s: type:%(type)s size:%(size)s date:%(creationDate)s" % details)

Vous avez maintenant toutes les informations pour lister le contenu du Cloud Orange. Nous allons maintenant voir
comment télécharger du contenu.

II-A-5 - Télécharger du contenu

Pour télécharger du contenu, c'est extrêmement simple. Il suffit de donner un identifiant de fichier à cette fonction et
un répertoire de téléchargement. Cette simple ligne se charge de tout !

- 11 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

1. client.downloadFile(fileId,"/my/target/directory-or-file")

II-A-6 - Envoyer du contenu

Pour envoyer du contenu, l'opération est simple aussi, il s'agit de la fonction suivante. Cette dernière prend 3
arguments en paramètre.

- Le premier est le nom du fichier qui va être envoyé ;

- Le second est l'identifiant du répertoire dans lequel on upload le fichier ;

- Le troisième est le lieu de stockage local du fichier (le path du fichier à envoyer).

1. fileId =
client.uploadFile("mypicture.jpg",folderInfo['id'],"@/my/file/location/mypicture.jpg")

II-A-7 - Supprimer un fichier ou répertoire

Ces deux fonctions prennent en argument l'identifiant du répertoire à créer un supprimer

1. #Pour un fichier
2. client.deleteFile(fileId)
3.
4. #Pour un dossier
5. client.deleteFolder(folderId)

II-A-8 - Créer un répertoire

Pour créer un répertoire sur le Cloud Orange, il est nécessaire de passer en paramètre à la fonction suivante le nom
du répertoire à créer ainsi que l'identifiant du dossier parent (dans l'arborescende du Cloud).

1. folderInfo = client.createFolder("myfoldername",myFolderId)

Voici un résumé des fonctions disponibles dans le SDK officiel en Python, cependant, libre à vous d'utiliser votre
propre langage, l'API étant une API REST, vous pouvez utiliser n'importe quel langage que vous maîtrisez, ou même
directement cURL.

- 12 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Liste des fonctions disponibles pour le langage Python

II-B - Programmer pour une application Java sous Android

II-B-1 - Pour démarrer

Il est nécessaire de télécharger et d'installer Android Studio téléchargeable sur ce lien.

L'installation d'Android Studio requiert Java :

• JRE ;
• JDK.

Après installation, on démarre Android Studio, puis on clique sur « Import project (Eclipse ADT, Gradle, etc.) »

Le menu au démarrage d'Android Studio se présente comme suit :

- 13 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Menu démarrage Android Studio

Nous sélectionnons alors le chemin (path) du dossier exemple (sample) (OrangeCloudAndroidSdk-master/sample),


puis on clique sur OK, comme indiqué ci-dessous :

- 14 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Chemin d'accès au projet d'exemple

À ce stade, il est important de remplacer le APP_KEY, le APP_SECRET et le APP_REDIRECT_URI par les clés
d'API donnés dans votre espace client Orange dans le fichier MainActivity.jav :

1. final static private String APP_KEY = "votre api key";


2. final static private String APP_SECRET = "votre app secret";
3. final static private String APP_REDIRECT_URI = "votre url de redirection";

II-B-2 - Prérequis pour le bon fonctionnement du script

Maintenant, nous allons vérifier les deux conditions qui font que cela va fonctionner.

II-B-2-a - Vérifier le AndroidManifest.xml

Pour que l'utilisateur puisse s'authentifier auprès d'Orange, il est nécessaire d'ajouter ce petit bloc de code en dessous
de la balise <application>, donc juste après le </application>.

1. <activity
2. android:name="com.orange.labs.sdk.activity.AuthActivity"
3. android:launchMode="singleTask"
4. android:configChanges="orientation|keyboard"/>

La balise est auto-fermante, pas besoin de </activity>.

- 15 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Vous pouvez lire notre tutoriel, pour en savoir plus sur comment accéder aux données ou contenus personnels d'un
utilisateur via l' « authentification 3-legged ».

On peut également vérifier que notre application Android a bien le droit d'utiliser le réseau Internet, toujours dans le
AndroidManifest.xml. Pour attribuer le droit, voici la ligne de code à rajouter (en-dessous de la section <manifest>,
donc après la balise </manifest>.

1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>

II-B-2-b - Vérifier le Activity.java

Dans le fichier Activity.java, on rajoute les constantes d'API Orange (fournies à l'étape de l'inscription)

1. final static private String APP_KEY = "votre api key";


2. final static private String APP_SECRET = "votre app secret";
3. final static private String APP_REDIRECT_URI = "votre url de redirection";

II-B-3 - L'utilisation de l'API

Attention, dans cette partie nous allons traiter de l'authentification de l'API (comprendre que votre application se
connecte aux serveurs Orange) et de l'authentification de l'utilisateur (qui doit lui aussi s'authentifier pour que notre
application puisse utiliser son espace de stockage Cloud). Il est important de ne pas les confondre, aussi, l'utilisateur
doit posséder un espace sur le Cloud Orange. S'il n'en a pas, c'est par ici

Rien d'étonnant, avant d'utiliser l'API, il est nécessaire d'authentifier l'application auprès d'Orange, et ça se fait
simplement :

1. // Dans la déclaration de classe


2. public OrangeCloudAPI<AuthSession> mApi;
3.
4. // On instancie un objet de type AuthSession que l'on appelle session. La magie du SDK s'occupe du reste.
5. AuthSession session = new AuthSession(Activity.this, APP_KEY, APP_SECRET, APP_REDIRECT_URI);
6. mApi = new OrangeCloudAPI<AuthSession>(session);

Comme dans toute API, il est nécessaire de définir un « scope » pour notre accès, dans le fichier AndroidManifest.xml.
Un « scope » est un paramètre qui permet de définir la portée des droits de la demande d'autorisation. Les différents
scopes sont définis dans le Getting Started de l'API Cloud d'Orange.

On définit le scope avec cette ligne de code :

1. mApi.addScope("Cloud");

Le « scope » dépend de l'utilisation que votre application va avoir avec le Cloud d'Orange.

Il est possible d'utiliser de multiples « scope ». Il suffit de les écrire les uns à la suite des autres avec des espaces.
Par exemple

1. mApi.addScope("Cloud Cloudfullread") ;

Le « scope » Cloudfullwrite est soumis à autorisation. Par défaut, « Ma Super Application »


ne peut pas écrire dans l'ensemble du Cloud Orange. Pour obtenir cette autorisation, il est
nécessaire de faire la demande ici.

- 16 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Maintenant, il est nécessaire d'authentifier l'utilisateur auprès d'Orange. Pour cela, s'il s'agit de la première connexion
de l'utilisateur, la méthode ouvre une AuthActivity (déclarée dans le AndroidManifest.xml). Cette étape permet
d'authentifier l'utilisateur ainsi que d'autoriser l'accès aux services Cloud d'Orange.

1. mApi.getSession().startAuthentication();

Lors de l'authentification, l'utilisateur est renvoyé vers votre Activity.java. À ce moment, pour finir l'authentification de
l'utilisateur, vous devez compléter votre méthode onResume avec le code suivant.

1. @Override
2. protected void onResume() {
3. super.onResume();
4. // Récupère la session et regarde ou en est le processus d'authentification
5. final AuthSession session = mApi.getSession();
6. session.checkAuthentication(new OrangeListener.Success<String>() {
7. @Override
8. public void onResponse(String response) {
9. // La session est valide, vous pouvez utiliser les fonctions du Cloud Orange.
10. }
11. }, new OrangeListener.Error() {
12. @Override
13. public void onErrorResponse(OrangeAPIException error) {
14. // Il y a eu une erreur lors du processus
15. }
16. });
17. }

II-B-4 - Quelques exemples de codes

II-B-4-a - Lister le contenu du Cloud Orange

Pour lister le contenu d'un répertoire, vous devez passer un objet Entry. Si vous souhaitez récupérer la racine, passez
un null.

Attention, dans le code suivant, le paramètre est un JSONObject et doit systématiquement


contenir au minimum Authorization (le jeton d'autorisation) et folderId (le chemin du répertoire
à récupérer)

1. mApi.listEntries(anEntry, parameters, new OrangeListener.Success<OrangeCloudAPI.Entry>() {


2. Override
3. public void onResponse(OrangeCloudAPI.Entry response) {
4. // success
5. }
6. }, new OrangeListener.Error() {
7. @Override
8. public void onErrorResponse(OrangeAPIException error) {
9. // Error occurred
10. }
11. });

On peut décider de passer d'autres paramètres pour récupérer les thumbnails


showthumbnails, si le paramètre est présent, la réponse de l'API contiendra systématiquement la miniature, la preview
ou une URL de téléchargement pour chaque fichier.

Il est aussi possible de souhaiter récupérer uniquement les photos ou les vidéos. Cela est possible avec le paramètre
filter : il peut contenir les valeurs suivantes : [image|video|audio|other].

La liste des paramètres est disponible dans la référence de l'API Cloud d'Orange

- 17 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

La réponse de l'API sera sous la forme suivante pour chaque fichier.

1. file_def {
2. id (string, optional),
3. name (string, optional),
4. size (integer, optional),
5. creationDate (date-time, optional),
6. lastUpdateDate (date-time, optional),
7. type (string, optional) = ["FILE" or "PICTURE" or "VIDEO" or "AUDIO"],
8. downloadUrl (string, optional),
9. previewUrl (string, optional),
10. thumbUrl (string, optional),
11. metaData (object, optional)
12. }

II-B-4-b - Envoyer un fichier vers le Cloud d'Orange

Il est important de noter que cette tâche pouvant être longue, elle doit être appelée en tâche de fond, ne pas faire
patienter l'utilisateur durant le processus. Il doit s'agit d'un background ou d'un IntentService.

Pour savoir comment créer un IntentService voici le lien.

1. mApi.upload(fileUri, filename, entryToUpload, new OrangeListener.Success<JSONObject>() {


2. @Override
3. public void onResponse(JSONObject response) {
4. // Le fichier est envoyé
5. }
6. }, new OrangeListener.Progress() {
7. @Override
8. public void onProgress(float ratio) {
9. // Progress bar (ratio = [0,1])
10. }
11. }, new OrangeListener.Error() {
12. @Override
13. public void onErrorResponse(OrangeAPIException error) {
14. // Une erreur a été levée
15. }
16. });

II-C - Programmer pour une application sous iOS (Swift)

II-C-1 - Pour démarrer

En rappel, vous devez avant tout développement posséder un Client ID et un Client Token pour pouvoir appeler l'API.

Pour programmer en Swift, vous devez disposer de Xcode et d'un Mac en mode développeur. Pour cela rien de plus
simple, rendez-vous dans l'App Store de votre Mac puis cherchez « Xcode ».

L'installation est simplifiée et vous n'avez rien à faire pour que cela fonctionne.

À présent, rendez-vous sur le lien de téléchargement du SDK Swift de l'API Cloud Orange.

Pour ceux qui utilisent Git, vous pouvez cloner le repo git. Pour cela, ouvrez votre terminal, et lancez successivement
les commandes :

git init
git clone https://github.com/Orange-OpenSource/OrangeCloudIOSSdk.git

Pour les autres, vous pouvez cliquer sur « Download in Zip » comme présenté dans la figure ci-dessous.

- 18 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

Télechargement des composants Git

Vous vous retrouvez donc avec un répertoire zip à décompresser. Après la décompression, lancer le fichier
« OrangeCloudSDK.xcodeproj ».

Vous êtes à présent dans Xcode. Avec le projet lancé, vous avez l'arborescence suivante :

Arborescence projet Xcode

À ce stade, il est important de remplacer le APP_KEY, le APP_SECRET et le APP_REDIRECT_URI par les clés
d'API donnés dans votre espace client Orange dans le fichier BrowseController.m.

- 19 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

1. (void)viewDidLoad {
2. [super viewDidLoad];
3. self.view.backgroundColor = [UIColor whiteColor];
4.
5. // Créez un objet connexion qui fera la première authentification utilisateur et une session avec l'API Clo
6.
7. self.CloudManager = [[CloudManager alloc] initWithAppKey:@"APP_KEY"
8. appSecret:@"APP_SECRET"
9. redirectURI:@"APP_REDIRECT_URI"];
10.
11. [self.CloudManager setUseWebView:TRUE];
12. [self.CloudManager setForceLogin:TRUE];
13. }

À présent, vous n'avez plus qu'à compiler et démarrer votre simulateur iOS pour obtenir un projet fonctionnel.

Bien que le SDK ait été écrit en Objective-C, ce dernier a été conçu de manière à maximiser la compatibilité avec
Swift. Ainsi, si vous souhaitez utiliser le SDK dans un projet Swift, vous n'avez qu'à ajouter la ligne suivante dans
le bridging header de votre application :

1. #import "CloudManager.h"

Généralement, ce fichier est appelé MA-SUPER-APPLICATION-Bridging-Header.h

L'authentification est automatiquement gérée par le SDK. Aussi, vous n'avez pas à gérer cette partie dans votre code.

La gestion du « scope » est automatique en fonction des usages de votre application. Aussi, cette partie n'a pas
à être gérée dans votre code.

II-C-2 - La classe CloudManager

Il s'agit de la classe principale du SDK, cette dernière vous autorise l'accès à l'intégralité des fonctionnalités du Cloud
(Authentification utilisateur, liste des fichiers, informations de fichiers …).

Lors du développement de votre application, vous n'avez qu'à instancier un objet CloudManager avec votre
CLIENT_ID et votre CLIENT_TOKEN dans la vue principale. Ensuite, lorsque l'utilisateur a donné son consentement,
vous pourrez accéder à ses fichiers.

II-C-3 - Quelques exemples de codes

II-C-3-a - Lister le contenu du Cloud Orange

Pour lister le contenu d'un répertoire, voici le code adéquat :

1. func listFolder (context : TestContext, result : (TestState)->Void) {


2. if let folder = context.testFolder {
3. context.manager.listFolder(folder, restrictedMode: false, showThumbnails: true, filter: .All, flat: fal
4. if let items = items as? [CloudItem] where items.count > 0 {
5. context.testFile = items[0]
6. }
7. result (status == StatusOK ? .Succeeded : .Failed)
8. }
9. } else {
10. result (.Failed)
11. }
12. }

La réponse de l'API sera sous la forme suivante pour chaque fichier :

- 20 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/
Découvrir et apprendre à programmer avec l'API Cloud Orange par Orange

1. file_def {
2. id (string, optional),
3. name (string, optional),
4. size (integer, optional),
5. creationDate (date-time, optional),
6. lastUpdateDate (date-time, optional),
7. type (string, optional) = ["FILE" or "PICTURE" or "VIDEO" or "AUDIO"],
8. downloadUrl (string, optional),
9. previewUrl (string, optional),
10. thumbUrl (string, optional),
11. metaData (object, optional)
12. }

II-C-4 - Envoyer un fichier vers le Cloud d'Orange

Il est important de noter que cette tâche pouvant être longue, elle doit être appelée en tâche de fond, ne pas faire
patienter l'utilisateur durant le processus.

1. func uploadFile (context : TestContext, result : (TestState)->Void) {


2. let bundle = NSBundle.mainBundle()
3. if let folder = context.testFolder,
4. path = bundle.pathForResource("image", ofType: "jpg"),
5. data = NSData (contentsOfFile: path) {
6. context.manager.uploadData(data, filename: "image.jpg", folderID: folder.identifier, progress: nil) { i
7. if status == StatusOK {
8. context.testFile = item
9. result (.Succeeded)
10. } else {
11. result (.Failed)
12. }
13. }
14. } else {
15. result (.Failed)
16. }
17. }

Remerciements Developpez.com

Nous remercions Guillaume Sigui pour la relecture technique et la mise au gabarit, et Malick Seck pour sa relecture
orthographique.

- 21 -
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée
par les droits d'auteur. Copyright ® 2016 Orange. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans
l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.
http://orange.developpez.com/tutoriels/api-cloud-orange/

Vous aimerez peut-être aussi