Utiliser une API : pour aller plus loin !

Sur la chaîne Youtube, vous avez pu découvrir comment appeler une API depuis Google Apps Script pour importer des données directement dans Google Sheets ! Si vous n’avez pas encore vu la vidéo, visualisez la sans plus tarder avant de lire la suite :

Comment se connecter à une API avec Google Sheets

Grâce à l’API de AccuWeather, nous avons réussi à créer une fonction permettant d’importer directement les températures prévues pour la journée dans Sheets.

Et si vous avez bien suivi la vidéo, vous avez peut-être tenté le challenge proposé, à savoir retrouver la ville associée à la clé de localisation utilisée dans la vidéo :

const idVille = "136293";

La première chose à faire est d’identifier l’API à utiliser. Ici nous utiliserons « Locations API » qu’on peut retrouver sur la page de référence de AccuWeather.

Locations API

Ensuite, nous allons devoir déterminer le point de terminaison à utiliser dans notre requête HTTP, pour pouvoir retrouver les informations sur la ville à partir de la clé de localisation (dans la documentation de « Locations API »). En naviguant entre les différentes propositions, on se rend facilement compte que nous auront besoin du point de terminaison suivant :

Et on retrouve ensuite toute la documentation dont on a besoin pour effectuer une requête HTTP et récupérer les informations comme dans la vidéo :

Ensuite on peut créer une fonction dans Google Apps Script pour reconstituer l’URL sur lequel nous allons effectuer notre requête HTTP, de la même façon que dans la vidéo :

function trouverVille()
{
  const idVille = "136293";
  const cleApi = #votreCleAPI;

  const uri = "http://dataservice.accuweather.com/locations/v1/" + idVille + "?"
    + "apikey=" + cleApi 
    + "&" + "language=fr";
}

Pensez bien entendu à remplacer #votreCleAPI par votre propre clé d’API que vous avez créée via votre compte sur AccuWeather. J’ai masqué ma propre clé ici pour des raisons évidentes 🙂

Ensuite il ne vous reste qu’à faire la requête HTTP et retrouver la ville associée à la clé de localisation en naviguant dans l’objet JavaScript obtenu via l’appel à l’API.

function trouverVille()
{
  const idVille = "136293";
  const cleApi = #votreCleAPI;

  const uri = "http://dataservice.accuweather.com/locations/v1/" + idVille + "?"
    + "apikey=" + cleApi 
    + "&" + "language=fr";

  var jsonInfoLoc = UrlFetchApp.fetch(uri,{method: "GET"}).getContentText();
  var infoLoc = JSON.parse(jsonInfoLoc);

  var ville = infoLoc.LocalizedName;
  Browser.msgBox(ville);

}

Ici je vais directement rechercher l’information dans le bon champ de l’objet JavaScript pour l’afficher dans une boîte de message (lorsqu’on retourne dans Google Sheets). Mais pour pouvoir naviguer dans l’objet et voir les différents champs qui le constituent, vous pouvez tout d’abord utiliser un console.log pour afficher l’organisation de l’objet dans la console :

function trouverVille()
{
  const idVille = "136293";
  const cleApi = #votreCleAPI;

  const uri = "http://dataservice.accuweather.com/locations/v1/" + idVille + "?"
    + "apikey=" + cleApi 
    + "&" + "language=fr";

  var jsonInfoLoc = UrlFetchApp.fetch(uri,{method: "GET"}).getContentText();
  var infoLoc = JSON.parse(jsonInfoLoc);

  console.log(infoLoc);
}

Ce qui donne, dans la console :

Et vous l’aurez maintenant sûrement deviné, la ville que nous cherchions était … La Rochelle ! Félicitations si vous aviez la bonne réponse et à bientôt !