Présentation des nouvelles API d'Orange : identité, cloud, IoT, proximité, etc.

Les API d'Orange favorisent la création et le développement de services innovants, dans les domaines traditionnellement forts de l'opérateur (identité, paiement, communication, cloud), mais aussi dans de nouveaux territoires (IoT, services de proximité, solutions dédiées pour l'Afrique et le Moyen-Orient).

Vous pouvez commenter cet article sur le forum : 22 commentaires Donner une note à l'article (4.5)

Article lu   fois.

Les deux auteurs

Site personnel

Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Le catalogue des API d'Orange s'est fortement enrichi avec plus de 20 interfaces publiques ou accessibles dans le cadre d'un contrat de partenariat, organisées en trois groupes :

  • des API liées aux principaux actifs d'opérateur autour de l'identité, du paiement, des communications et du cloud ;
  • des API complémentaires autour de l'IoT (Internet des objets) et de la proximité ;
  • des API dédiées au développement de services pour l'Afrique et le Moyen-Orient.

Cet article propose un tour d'horizon rapide de quelques-unes des API d'Orange, avec des exemples de mise en œuvre et des pistes pour aller plus loin si vous le souhaitez.

Image non disponible

Les API d'Orange sont simples, sécurisées, clairement documentées au format Swagger et accompagnées de tutoriels (getting started), d'exemples de codes et de SDK disponibles librement, à partir du site : https://developer.orange.com.

II. Pour utiliser les API d'Orange, il suffit de…

La première étape consiste à vous enregistrer gratuitement sur le site https://developer.orange.com. Vous pourrez y déclarer vos services ou applications et associer des API d'Orange pertinentes pour vos projets. Dans la plupart des cas, vous obtiendrez immédiatement vos credentials (identifiant et clé) qui vous serviront pour chaque appel. Seules quelques API nécessitent une validation et cela reste rapide.

Les API étant conformes au style REST, vous pouvez paramétrer facilement toutes vos requêtes autour du même host : https://api.orange.com en vous appuyant sur des verbes, codes, statuts, et formats JSON standards.

Exemple avec l'API Search TopTrends

Cette API permet de connaître les mots clés les plus recherchés par les internautes, sur le moteur de recherche Le Moteur, qui équipe les sites du Groupe Orange et ceux de partenaires de médias francophones.

Après obtention d'un access_token, il suffit d'envoyer la requête GET suivante pour obtenir les informations au format JSON :

Code en CURL
Sélectionnez
curl -X GET -H "Authorization: Bearer {access_token}" \
https://api.orange.com/search/v2/toptrends

III. Exemples d'API

III-A. Collecte de données IoT

L'API Live Objects permet de stocker et de restituer en toute sécurité tous types de données venant d'objets connectés, comme un capteur intelligent, un processeur embarqué ou bien un smartphone, par exemple.

Live Objects s'inscrit dans un vaste programme de co-innovation : Datavenue, qui rassemble les expertises d'Orange autour de solutions de connectivité (2G, 3G, 4G, LoRa, etc.), du Cloud et de la Data (agrégation, anonymisation, traitement, visualisation, sécurisation, etc.).

Prenons l'exemple d'un Raspberry Pi devant transmettre chaque seconde la valeur d'un capteur de luminosité. Il suffit de déclarer, sur le portail, un service ou une application afin d'obtenir les clés X-ISS-KEY et X-OPAI-KEY qui permettront d'envoyer les requêtes en toute sécurité.

Ici le modèle de données est très simple : un datasource correspondant à l'ensemble des données que pourra envoyer le Raspberry Pi, dont un datastream correspondant à la luminosité mesurée.

Code en Python
Sélectionnez
...
XISSKey = '{X-ISS-KEY}'
XOAPIKey = '{X-OPAI-KEY}'
DatasourceID = '{datasourceId}'
StreamID = '{streamId}'
...
host = 'https://api.orange.com'
headers = {
        'User-Agent': 'python',
        'Content-Type': 'application/json',
        'X-ISS-Key': XISSKey,
        'X-OAPI-Key': XOAPIKey
}

def POSTdatavenue(value):

    host = 'https://api.orange.com'
    url = '/datavenue/v1/datasources/'+ DatasourceID + '/streams/'+ StreamID + '/values'
        body = [{ 'value' : value }]
        endpoint = host + url

    logging.debug("Making request to Enpoint: %s", endpoint)
    logging.debug("Body: %s", body)

    try:
        response = requests.post(endpoint, headers=headers, data=json.dumps(body))
        if response.status_code != 201:
            logging.error("Response status: %s", response.status_code)
    except:
        logging.error("Post request has failed.")
        logging.error("Endpoint: %s", endpoint)
        logging.error("Body: %s", body)
        return

while True:

    try:
         # Read RC timing using pin #18        
        lum = (50000/RCtime(18)) * 4
        POSTdatavenue(lum)
        time.sleep(1)
    except:
        logging.error("Error in the loop")
        continue

Cette collecte s'effectue simplement sous forme clé/valeur, avec horodatage. Le portail dédié simplifie la déclaration des modèles de données et permet une lecture directe et sécurisée des données collectées.

III-B. Accès au Cloud personnel des clients Orange

L'API du Cloud d'Orange permet à l'application d'un développeur d'accéder au Cloud personnel d'un client Orange après son authentification et la vérification de son consentement par Orange, et ce, de manière standard et sécurisée, via OpenID Connect. Par défaut, les lectures/écritures sont limitées à un répertoire spécialement créé pour l'application du développeur.

Toutes les offres mobiles, ADSL et fibre Orange, incluent un service de Cloud personnel. Cela représente des millions d'utilisateurs actifs.

Authentification et recueil du consentement de l'utilisateur

Prenons l'exemple fictif d'une application ou service web hébergé sur www.myorangecloudapp.com. Le mécanisme OpenID Connect permettra d'authentifier l'utilisateur final et recueillir son consentement, via tout navigateur, à partir de l'URL suivante :

https://api.orange.com/oauth/v2/authorize?
scope=openid%20cloud
&response_type=code
&client_id={identifiant}
&state=state
&redirect_uri=http%3A%2F%2Fwww.myorangecloudapp.com

La dernière ligne reprend, de manière encodée, l'URL de redirection déclarée pour cette application, et qui sera appelée par le service Orange si les vérifications sont positives, avec un code d'autorisation, comme ceci :

http://www.myorangecloudapp.com/?code=OFR-251f7...716a727f&state=state

Il faut à présent obtenir un access_token à partir de ce code et d'un header créé à partir des credentials obtenus sur le portail développeur (client_id, client_secret).

Code en CURL
Sélectionnez
curl -X POST \
     -H "Authorization: Basic NktSSHl...UdnlrT2lOaA==" \
     -d "grant_type=authorization_code \ &code=OFR-251f7...716a727f \
     &redirect_uri=http://www.myorangecloudapp.com" \
     https://api.orange.com/oauth/v2/token

La réponse en JSON contient l'access_token qui servira pour les prochaines requêtes.

Gestion des fichiers dans le Cloud

On peut commencer par lister les fichiers du répertoire dédié à l'application :

Code CURL
Sélectionnez
curl -X GET \ -H  \
     -H "Authorization: Bearer {access_token}" \
     https://api.orange.com/cloud/v1/folders/restrictedmode

La réponse permet de gérer chaque fichier ou sous-répertoire avec leurs ID, par exemple :

 
Sélectionnez
{
 "id": "VhlwZSAob3IgcGFzdGUpIGhlcmUuLi4=",
 "parentId": "Lw==",
 "name": "MyBeautifulApp",
 "files":
 [{ "id": "dmlkZW9EZWZhdWx0Lm1wNA==",
    "name": "videoDefault.mp4",
    "type": "VIDEO"  
  },
  { "id": "cGRmRGVmYXV0LnBkZg==",
    "name": "pdfDefaut.pdf",
    "type": "FILE"
  },
  { "id": "aW1hZ2VEZWZhdXQyLmpwZw==",
    "name": "imageDefaut2.jpg",
    "type": "PICTURE"
  }],
 "subfolders":
  [{ "id": "X191cGxvYWQv",
     "name": "__upload"
  }] 
}

On peut ainsi récursivement scruter les sous-répertoires, ou bien décider de lister à plat tous les fichiers, en introduisant par exemple des filtres sur les types de médias (audio, image, vidéo).

Code CURL
Sélectionnez
curl -X GET \ -H  \
     -H "Authorization: Bearer {access_token}" \
     "https://api.orange.com/cloud/v1/folders?filter=image&flat=true"

Pour faire un upload de fichier, il suffit d'une requête POST comme celle-ci, avec l'exemple de l'image test.jpeg :

Code CURL
Sélectionnez
curl -X POST 
     -H "Content-Type: image/jpeg" 
     -H "Authorization: Bearer {access_token}" 
     --data-binary "@test.jpeg" 
     -L "https://cloudapi.orange.com/cloud/v1/files/content?name=test.jpeg&folder=Lw"

Pour aller plus loin

La documentation en ligne https://developer.orange.com/apis/cloud-france/getting-started détaille l'usage des nombreuses autres fonctions qui permettent de connaître l'espace de stockage restant, télécharger, déplacer, renommer ou supprimer des fichiers, ne télécharger que des vignettes (thumbnails) d'images, créer ou supprimer des sous-répertoires, etc.

IV. Liens utiles

Description

Lien

Le programme Orange Developer

https://developer.orange.com

L'ensemble des API disponibles

https://developer.orange.com/apis

Les outils (kits, SDK, etc.)

https://developer.orange.com/tools

Le support des API

https://developer.orange.com/support

Opportunités

Au-delà des services rendus par les API elles-mêmes, Orange propose de nombreuses possibilités de partenariats comme l'accélération de start-ups, les tests d'applications, la mise en visibilité marketing, etc. Plus de 100 partenaires en ont déjà bénéficié et peuvent en témoigner.

Par exemple, dans le cas du Cloud d'Orange cité plus haut, des développeurs utilisent l'espace personnel des clients Orange pour :

  • stocker des photos et vidéos numérisées à partir de vieux supports ;
  • créer des animations à partir de bibliothèques de photos ;
  • partager des mémos, photos et vidéos au sein d'une même famille ;
  • rassembler des documents administratifs ;
  • crypter un répertoire important ;
  • etc.

Tout est résumé sur le site d'Orange Partner :https://partner.orange.com/.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

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 © 2010 Orange Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.