API externes

Google Apps Script peut interagir avec des API de partout sur le Web. Ce guide explique comment utiliser différents types d'API dans vos scripts.

Se connecter à des API publiques

Vous pouvez utiliser le service UrlFetch pour effectuer des requêtes API directement.

L'exemple suivant utilise l'API GitHub pour rechercher des dépôts de 100 étoiles ou plus mentionnant "Apps Script". Cette requête API ne nécessite ni autorisation, ni clé API.

var query = '"Apps Script" stars:">=100"';
var url = 'https://api.github.com/search/repositories'
  + '?sort=stars'
  + '&q=' + encodeURIComponent(query);

var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
Logger.log(response);

Envoyer des requêtes aux services avec OAuth

Les API qui agissent au nom d'un utilisateur nécessitent généralement une autorisation, souvent à l'aide du protocole OAuth. Apps Script n'est pas compatible avec le protocole, mais il existe des bibliothèques Open Source que vous pouvez utiliser pour exécuter le flux OAuth et envoyer les identifiants avec vos requêtes:

Utiliser JSON

L'utilisation des objets JSON est semblable à l'utilisation du XML, à la différence qu'il est beaucoup plus facile d'analyser ou d'encoder un objet JSON.

Si l'API demandée renvoie une réponse JSON brute pour une requête, vous pouvez accéder à la réponse de chaîne JSON à l'aide de la méthode HTTPResponse.getContentText(). Une fois cette chaîne récupérée, il vous suffit d'appeler JSON.parse() sur la chaîne pour obtenir une représentation d'objet native.

// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);

De même, pour effectuer une représentation sous forme de chaîne d'un objet JavaScript afin d'envoyer une requête, utilisez JSON.stringify().

var data = {
  'entry': {
    'group': {
      'title': 'Dog Skateboarding',
      'description': 'My dog gets some serious air'
    },
    'keywords': 'dog, skateboard'
  }
}
var payload = JSON.stringify(data);
// Make request to API with payload after this point.

Analyser un flux XML

Si une API externe renvoie une réponse XML brute pour une requête, vous pouvez accéder à cette réponse à l'aide de la méthode HTTPResponse.getContentText().

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

Lorsque vous envoyez des requêtes XML à une API, créez le code XML à envoyer à l'aide des méthodes XmlService.

var root = XmlService.createElement('entry')
    .setAttribute('keywords', 'dog, skateboard');
var group = XmlService.createElement('group')
    .setAttribute('title', 'Dog Skateboarding');
    .setAttribute('description', 'My dog gets some serious air');
root.addContent(group);
var document = XmlService.createDocument(root);
var payload = XmlService.getPrettyFormat().format(document);
// Make request to API with payload after this point.