Intégrer une API météo dans vos feuilles Google via Apps Script

Les feuilles de calcul Google Sheets sont un outil puissant pour organiser et manipuler des données. Cependant, leur potentiel est décuplé lorsqu’elles sont combinées avec Google Apps Script, permettant l’intégration d’API externes. Dans cet article, nous allons vous montrer comment intégrer des données météorologiques provenant d’une API dans vos feuilles Google Sheets. Nous utiliserons l’API OpenWeatherMap pour obtenir des informations météo en temps réel.

Pourquoi intégrer une API météo dans Google Sheets ?

Intégrer une API météo dans Google Sheets permet d’automatiser la collecte des données météorologiques pour des villes spécifiques. Cela peut être utile dans différents contextes :

  • Planification de projets extérieurs : Pour surveiller la météo à venir dans différentes villes.
  • Analyse de données : Combiner des données météorologiques avec d’autres informations pour des rapports ou des analyses.
  • Applications de suivi : Créer un tableau de bord automatisé pour suivre la météo en temps réel.

Étapes pour intégrer l’API OpenWeatherMap

Prérequis

  • Un compte Google pour accéder à Google Sheets et Google Apps Script.
  • Une clé d’API OpenWeatherMap. Vous pouvez créer un compte gratuit sur OpenWeatherMap et obtenir votre clé API.

1. Créer une feuille Google Sheets

Tout d’abord, créez une nouvelle feuille de calcul Google dans Google Sheets. Vous pouvez nommer la feuille “Météo” par exemple.

Ajoutez des en-têtes dans la première ligne de la feuille :

  • A1 : Ville
  • B1 : Température (°C)
  • C1 : Humidité (%)
  • D1 : Description
  • E1 : Date et heure

Dans la colonne A, vous pouvez entrer les noms des villes pour lesquelles vous souhaitez obtenir des informations météorologiques, par exemple Paris, New York, Tokyo, etc.

2. Accéder à Google Apps Script

1. Cliquez sur Extensions dans le menu Google Sheets.

2. Sélectionnez Apps Script. Cela ouvrira un éditeur de script où nous allons écrire notre code.

3. Écrire le script pour appeler l’API météo

Voici un exemple de script Google Apps Script qui appelle l’API OpenWeatherMap et remplit les informations météo dans Google Sheets.

Code Google Apps Script :

// Remplacez 'YOUR_API_KEY' par votre clé d'API OpenWeatherMap.
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://api.openweathermap.org/data/2.5/weather';

// Fonction principale pour obtenir les données météo
function obtenirMeteo() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const dernierRang = feuille.getLastRow();
  const plageVilles = feuille.getRange(2, 1, dernierRang - 1, 1).getValues();

  // Boucle sur chaque ville de la colonne A
  plageVilles.forEach((ville, index) => {
    if (ville[0] !== "") {
      const reponseAPI = appelerAPI(ville[0]);
      
      // Si la réponse de l'API est valide
      if (reponseAPI) {
        const temperature = reponseAPI.main.temp - 273.15; // Convertir de Kelvin en Celsius
        const humidite = reponseAPI.main.humidity;
        const description = reponseAPI.weather[0].description;
        const dateHeure = new Date();

        // Insérer les données dans la feuille
        feuille.getRange(index + 2, 2).setValue(temperature.toFixed(2)); // Température
        feuille.getRange(index + 2, 3).setValue(humidite); // Humidité
        feuille.getRange(index + 2, 4).setValue(description); // Description
        feuille.getRange(index + 2, 5).setValue(dateHeure); // Date et heure
      }
    }
  });
}

// Fonction pour appeler l'API OpenWeatherMap et obtenir les données météo
function appelerAPI(ville) {
  const url = `${BASE_URL}?q=${ville}&appid=${API_KEY}`;
  try {
    const reponse = UrlFetchApp.fetch(url);
    const donnees = JSON.parse(reponse.getContentText());
    return donnees;
  } catch (e) {
    Logger.log(`Erreur pour la ville ${ville}: ${e.message}`);
    return null;
  }
}

4. Explication du code

  • Clé d’API : La variable API_KEY contient votre clé API OpenWeatherMap. Remplacez ‘YOUR_API_KEY’ par la clé obtenue après votre inscription sur le site.
  • Fonction principale (obtenirMeteo) :
    • Cette fonction récupère la liste des villes à partir de la colonne A de Google Sheets.
    • Pour chaque ville, elle appelle la fonction appelerAPI pour récupérer les données météo.
    • Les informations (température, humidité, description et date) sont ensuite insérées dans les colonnes correspondantes de la feuille.
  • Fonction appelerAPI :
    • Cette fonction fait une requête à l’API OpenWeatherMap en utilisant UrlFetchApp.fetch().
    • Elle formate l’URL avec le nom de la ville et la clé API, et renvoie les données reçues sous forme de JSON.
  • Conversion de la température : L’API OpenWeatherMap renvoie la température en Kelvin. Le script convertit cette valeur en degrés Celsius en soustrayant 273.15.

5. Planifier une mise à jour automatique

Vous pouvez configurer un déclencheur (trigger) pour que le script soit exécuté à intervalles réguliers (par exemple, toutes les heures) afin de mettre à jour automatiquement les données météo.

  • Dans l’éditeur Apps Script, cliquez sur l’icône de l’horloge à gauche (Déclencheurs).
  • Cliquez sur Ajouter un déclencheur.
  • Sélectionnez la fonction obtenirMeteo, puis définissez une fréquence (par exemple, une fois par heure).

Cela mettra à jour automatiquement les données météo pour les villes spécifiées à l’intervalle défini.

6. Résultat

Lorsque vous exécutez le script, les informations météo (température, humidité, description et date) seront récupérées pour chaque ville dans la feuille de calcul et affichées dans les colonnes B, C, D et E.

En intégrant l’API OpenWeatherMap dans Google Sheets via Google Apps Script, vous pouvez automatiser la récupération des données météorologiques pour un ensemble de villes. Ce tutoriel montre comment interagir avec une API externe, comment récupérer et traiter des données JSON, et comment les afficher directement dans une feuille de calcul. Les possibilités sont infinies : vous pouvez enrichir votre tableau de bord météo avec plus d’informations comme la vitesse du vent, la pression atmosphérique, ou même des prévisions à long terme.

Avec cette approche, vous pouvez suivre la météo en temps réel, planifier des projets, ou analyser des tendances météorologiques directement depuis Google Sheets.


Soutenez mon travail

Si cet article vous a été utile et que vous souhaitez soutenir mon travail, vous pouvez me remercier en faisant un don via PayPal. Chaque contribution est grandement appréciée et m’aide à continuer à partager des astuces et conseils sur ce blog. Merci pour votre soutien !

L’Atelier Informatique vous accompagne dans vos projets technologiques en vous proposant des tutoriels et des solutions pour optimiser vos tâches quotidiennes