Google Apps Script può interagire con le API di tutto il web. Questa guida illustra come utilizzare diversi tipi di API negli script.
Connettersi alle API pubbliche
Puoi utilizzare il servizio UrlFetch
per effettuare direttamente richieste all'API.
L'esempio seguente utilizza l'API GitHub per cercare repository con almeno 100 stelle che menzionano "Apps Script". Questa richiesta API non richiede autorizzazione o una chiave 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);
Inviare richieste ai servizi con OAuth
Le API che agiscono per conto di un utente in genere richiedono l'autorizzazione, spesso utilizzando il protocollo OAuth. Apps Script non fornisce il supporto integrato per il protocollo, ma esistono librerie open source che puoi utilizzare per eseguire il flusso OAuth e inviare le credenziali con le tue richieste:
- OAuth 1 per Apps Script: compatibile con OAuth 1.0 e 1.0a.
- OAuth2 per Apps Script: compatibile con OAuth2.
Lavorare con JSON
Il lavoro con gli oggetti JSON è simile a quello con gli oggetti XML, tranne per il fatto che l'analisi o la codifica di un oggetto JSON è molto più semplice.
Se l'API richiesta restituisce una risposta JSON non elaborata per una richiesta, è possibile accedere alla risposta della stringa JSON utilizzando il metodo
HTTPResponse.getContentText()
.
Una volta recuperata questa stringa, chiama semplicemente JSON.parse()
sulla stringa per ottenere una representatione dell'oggetto nativo.
// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);
Analogamente, per creare una rappresentazione di stringa di un oggetto JavaScript al fine di effettuare una richiesta, utilizza 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.
Analizza XML
Se un'API esterna restituisce una risposta XML non elaborata per una richiesta, puoi accedere alla risposta XML utilizzando il metodo
HTTPResponse.getContentText()
.
// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);
Quando invii richieste XML a un'API, crea il codice XML da inviare utilizzando i metodi 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.