Google Apps Script peut interagir avec des API du monde entier. Ce guide montre comment utiliser différents types d'API dans vos scripts.
Se connecter à des API publiques
Vous pouvez utiliser le service UrlFetch
pour effectuer
les requêtes API.
L'exemple suivant utilise la classe API GitHub pour recherchez les dépôts d'au moins 100 étoiles 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 ne fournit pas d'API du protocole, mais il existe des bibliothèques Open Source que vous pouvez utiliser exécuter le flux OAuth et envoyer les identifiants avec vos requêtes:
- OAuth1 pour Apps Script: Compatible avec OAuth 1.0 et 1.0a.
- OAuth2 pour Apps Script: Compatible avec OAuth2.
Utiliser JSON
L'utilisation d'objets JSON est semblable à l'utilisation du XML, si ce n'est que l'analyse ou il est beaucoup plus facile d'encoder un objet JSON.
Si l'API demandée renvoie une réponse JSON brute pour une requête, le fichier JSON
chaîne est accessible à l'aide de la méthode
HTTPResponse.getContentText()
Une fois cette chaîne récupérée, appelez simplement 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 représenter un objet JavaScript sous forme de chaîne
effectuez 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 au
Réponse XML utilisant 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 en utilisant
les 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.