Portail d'APIs de Météo France

Le portail d'APIs de Météo France vous permet d'accéder aux données ouvertes de Météo France via des APIs

Il vous permet de :

  • découvrir les APIs disponibles
  • accéder à la documentation pour les utiliser
  • les tester
  • récupérer les requêtes à intégrer dans vos programmes

Démarrage rapide

Pour pouvoir invoquer des APIs, vous devez effectuer les étapes suivantes :

  1. Se connecter (Créer un compte lors de la première visite sur https://portail-api.meteofrance.fr/devportal)
  2. Créer une application
  3. Souscrire à une API
  4. Créer un token d'accès JWT
  5. Invoquer l'API

Comment créer un compte ?

Pour créer un compte sur le portail d'APIs de Météo France, il est nécessaire d'avoir un email valide

Attention : pas de caractères spéciaux

Etapes pour Créer un compte :

  1. Click SE CONNECTER en haut à droite
  2. Click Créer un compte
  3. Entrer votre Nom d'utilisateur (entreprise ou prenom.nom) et click Procéder à l'auto-enregirstrement
  4. Renseigner les différents champs et click Enregistrer
  5. Ouvrir votre boite email et clic sur le lien d'activation présent dans le mail
  6. Se connecter sur le portail d'APIs de Météo France avec votre username et password

Comment créer une application ?

Description

Une application est une représentation logique d'une application physique comme par exemple une application mobile ou un site internet. Si une application a besoin de consommer une API, il faudra que cette application souscrive à l'API avec un quota d'appels auquel l'application est autorisée. Une seule application peut avoir plusieurs abonnements d'API. Chaque application possède une clé publique et une clé privée. Les requêtes adressées aux API souscrites sont authentifiées via les jetons générés à l'aide des derniers identifiants de sécurité mentionnés.

Une application permet de:

  • Générer et utilser un unique JWT token pour accéder à plusieurs APIs
  • Souscrire plusieurs fois à une même API avec un différent niveau de quota (SLA)

Le portail d'APIs de Météo France crée une application par défaut. Vous pouvez créer la vôtre.

Etapes pour créer une application :

  1. Etre connecté au portail d'APIs de Météo France
  2. Click Applications tab
  3. Click Ajouter une nouvelle application button
  4. Entrer les détails de l'application and click SAUVEGARDER button pour créer l'application.

Comment souscrire à une API ?

Description

Vous devez souscrire à une API via une application avant d'effectuer des requêtes. Souscrire à une API, vous permet par la suite de générer un token pour être authentifié à cette API.

Voir les concepts clé à connaître avant de souscrire à une API:

  • Application
  • JWT Access token

Première étape : Etre connecté au portail d'APIs de Météo France

Etape suivante : 2 façons de souscrire à une API

  1. Par l'API
  2. Par l'application

Par l'Api

  1. Click sur l'API pour voir son détail
  2. Click le menu Abonnements
  3. Dans la page Abonnements, choisir votre application, un quota et S'ABONNER

Par l'application

  1. Click l'onglet Applications, click sur votre application pour voir son détail
  2. Click sur le menu Abonnements
  3. Click +S'ABONNER AUX APIS
  4. Dans la pop-up, choisir l'api, le quota et S'ABONNER

Comment créer un token d'accès JWT ?

Description

Les jetons d'accès JWT sont des jetons qui authentifient et autorisent une application (qui a souscrit à une collection logique d'APIs). Vous pouvez accéder à plusieurs APIs avec le même jeton.
Pour être authentifié et autorisé, nous vous proposons 2 protocoles différents :

  • Par API keys
  • Avantage : Plus simple à mettre en place
    Inconvénient : Le token ne doit pas être exposé sur un site internet ou dans une application mobile au risque d'être subtilisé et utilisé à mauvais escient.
  • Par Oauth2 acces token
  • Avantage : Plus sécurisé avec un renouvellement du jeton toutes les heures
    Inconvénient : Plus compliqué à mettre en place

Les étapes suivantes sont communes aux 2 protocoles :

  1. Click Applications tab, click sur votre application pour accéder à son détail
  2. Click Productions Keys tab
  3. La première fois : click on GENERATE KEYS pour générer les clés (privée et publique) de l'application.

Accès par API key protocol

Les étapes suivantes explique comment générer un token JWT avec le protocole API key

  1. Click Api Key
  2. Vous pouvez choisir une restriction (par exemple : si vous choisissez IP Adresses en renseignant votre IP, seule votre IP pourra utiliser le token)
  3. Click on GENERATE KEYS pour créer un JWT token (par défaut la validité sera de 3 ans (maximum autorisé), vous pouvez choisir une période limitée)
  4. Click on GENERATE pour générer le JWT token

Attention : Pour que le token soit valide vous devez avant de le générer, vous être abonné à toutes les APIs que vous souhaitez utiliser. Si vous vous abonnez à une nouvelle API, le token généré auparavant ne fonctionnera pas pour cette nouvelle API.

Vous pouvez passer à l'étape : Comment invoquer une API ?

Accès par Oauth2 protocol

Les étapes suivantes explique comment générer un token JWT avec le protocole Oauth2

  1. Click Oauth2 token
  2. Click sur UPDATE pour générer le JWT token

La période de validité du token généré est de 3600 secondes

Vous pouvez également régénérer le token par Click sur GENERATE ACCES TOKEN

Vous pouvez récupérer les commandes cURL pour aussi régénérer le token par Click sur CURL TO GENERATE ACCES TOKEN

Avec le protocole Oauth2, le token a un durée de vie limitée, donc il faut le régénérer régulièrement, le paragraphe suivant explique quelle logique mettre en place pour cela.

Logique à mettre en place pour régénérer un token dans votre programme

Pour un programme ayant à effectuer des requêtes continuellemnt, c'est nécessaire d'implémenter une logique de renouvellemnt du token.

Voici un shéma expliquant cette logique à implémenter :


Exemple d'un programme pyhon effectuant des requêtes avec la mise en place du renouvellement de token

import json
import requests
import time

# Example of a Python implementation for a continuous authentication client.
# It's necessary to :
# - update APPLICATION_ID
# - update request_url at the end of the script

# unique application id : you can find this in the curl's command to generate jwt token or with Base64(consumer-key:consumer-secret) keys application
APPLICATION_ID = 'xxxxx'

# url to obtain acces token
TOKEN_URL = "https://portail-api.meteofrance.fr/private/nativeAPIs/token"

class Client(object):

    def __init__(self):
        self.session = requests.Session()

    def request(self, method, url, **kwargs):
        # First request will always need to obtain a token first
        if 'Authorization' not in self.session.headers:
            self.obtain_token()

        # Optimistically attempt to dispatch reqest
        response = self.session.request(method, url, **kwargs)
        if self.token_has_expired(response):
            # We got an 'Access token expired' response => refresh token
            self.obtain_token()
            # Re-dispatch the request that previously failed
            response = self.session.request(method, url, **kwargs)

        return response

    def token_has_expired(self, response):
        status = response.status_code
        content_type = response.headers['Content-Type']
        if status == 401 and 'application/json' in content_type:
            if 'expired' in response.headers['WWW-Authenticate']:
                return True

        return False

    def obtain_token(self):
        # Obtain new token
        data = {'grant_type': 'client_credentials'}
        headers = {'Authorization': 'Basic ' + APPLICATION_ID}
        access_token_response = requests.post(TOKEN_URL, data=data, verify=False, allow_redirects=False, headers=headers)
        token = access_token_response.json()['access_token']
        # Update session with fresh token
        self.session.headers.update({'Authorization': 'Bearer %s' % token})

def main():
    client = Client()
    # Issue a series of API requests an example. For use this test, you must first subscribe to the arome api with your application
    client.session.headers.update({'Accept': 'application/json'})

    for i in range(100):
        response = client.request('GET', 'https://public-api.meteofrance.fr/public/arome/1.0/wms/MF-NWP-HIGHRES-AROME-001-FRANCE-WMS/GetCapabilities?service=WMS&version=1.3.0', verify=False)
        print(response.status_code)
        time.sleep(120)


if __name__ == '__main__':
    main()

Comment invoquer une API ?

Si vous avez créer votre application, générer les clés de l'application, souscrit à l'API, vous pouvez maintenant invoquer (requeter) l'API.

  1. Se connecter sur le portail d'APIs de Météo France (https://portail-api.meteofrance.fr/devportal) et click sur l'API pour ouvrir son détail. Clic sur Test dans le menu vertical à gauche.
  2. Choisir le type de protocole (Oauth or API Key)
  3. Choisir votre application
  4. Click OBTENIR UN TOKEN pour générer un token (que vous pouvez garder par la suite, si c'est un token de type ApiKey, sa durée est de 3 ans, si c'est un token de type Oauth2, sa durée est de 1 heure)
  5. Clic sur GET/PUT/... méthodes et click Try it out. Renseigner les paramètres requis et click Execute.

Résultats affichés :

- réponse de la requête

- les commandes cURL que vous pouvez récupérer pour les utiliser dans vos programmes

  1. API key protocole
  2. Spécifier le JWT token dans le header comme suit :
    curl -X GET "https://url.meteofrance.fr/public/myressource" -H  "accept: application/json" -H  "apikey: myJwtApiKeyToken"
    
    Spécifier le JWT token comme paramètre dans l'url comme suit :
    Attention : Avant de rajouter le token JWT en paramètre, vous devez l'encoder via un site comme par exemple : https://www.urlencoder.org/
    curl -X GET "https://url.meteofrance.fr/public/myressource?apikey=monJwtApiKeyTokenEncode"
    
  3. Oauth2 protocole
  4. Spécifier le JWT token dans le header comme suit :
    curl -X GET "https://url.meteofrance.fr/public/myressource" -H  "accept: application/json" -H  "Authorization: Bearer myJwtOauth2Token"
    

Concepts clé

Application

Une application est une collection logique d'APIs. Elle vous permet:

  • Générer et utiliser un seul token pour plusieurs APIs
  • Souscrire plusieurs fois à la même API avec un quota différent
Pour utiliser une API, vous devez passer par une application. Un quota détermine le nombre maximum d'appels pouvant être effectué sur une période.
Le gestionnaire d'APIs vous crée une application par défaut. Vous pouvez créer la vôtre.

JWT tokens

JSON Web Token (JWT) est un 'open standard' pour authentifier, autoriser et transmettre des informations de manière sécurisée entre 2 parties. Comme le token est digitalement signé, les informations sont sécurisées. Le JWT token présente l'avantage de contenir des informations (comme sa date de création, sa date de fin)

Pour décoder votre JWT token vous pouvez aller sur le site suivante https://jwt.io/

Quota

Une fois authentifiée et autorisée, toute application est limitée à un nombre de requête sur une API pour une période

FAQ