Google Apps Script può interagire con le API di tutto il web. Questa guida illustra come utilizzare diversi tipi di API negli script.
Connettiti alle API pubbliche
Puoi utilizzare il servizio UrlFetch
per effettuare
richieste API direttamente.
L'esempio seguente utilizza il metodo API GitHub per cerca i repository con 100 o più stelle che riportano "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);
Effettuare richieste ai servizi con OAuth
Le API che agiscono per conto di un utente richiedono in genere l'autorizzazione, spesso utilizzando Protocollo OAuth. Apps Script non fornisce le funzionalità il protocollo, ma esistono librerie open source che puoi usare esegui il flusso OAuth e invia le credenziali con le tue richieste:
- OAuth1 per Apps Script: Compatibile con OAuth 1.0 e 1.0a.
- OAuth2 per Apps Script: Compatibile con OAuth2.
Lavora con JSON
L'utilizzo di oggetti JSON è simile a quello di XML, ad eccezione del 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, il codice JSON
la risposta stringa è accessibile utilizzando il metodo
HTTPResponse.getContentText()
Una volta recuperata la stringa, è sufficiente richiamare JSON.parse()
sulla stringa per ottenere un
rappresentazione nativa di oggetti.
// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);
Allo stesso modo, per creare una rappresentazione stringa di un oggetto JavaScript per
invia 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 di una richiesta, puoi accedere al
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.