Google Apps Script può interagire con le API di tutto il web. Utilizza questa guida per lavorare con diversi tipi di API negli script.
Connettersi alle API pubbliche
Utilizza il UrlFetch servizio per effettuare richieste API
direttamente.
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);
Effettuare 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 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:
- OAuth1 per Apps Script: compatibile con OAuth 1.0 e 1.0a.
- OAuth2 per Apps Script: compatibile con OAuth2.
Autenticazione con un service account
Per chiamare un'API da Apps Script, puoi scegliere di utilizzare l'autenticazione del service account per uno dei seguenti motivi:
- Migliori prestazioni con le API Cloud di Google
- Automazioni e attività a lunga esecuzione
- Maggiore sicurezza (privilegio minimo)
- Gestione degli accessi centralizzata
Per utilizzare un service account in Apps Script, vedi Autenticarsi come progetto Apps Script utilizzando i service account.
Connettersi ai servizi Google Cloud
Puoi utilizzare il ScriptApp.getIdentityToken()
metodo per ottenere un
token ID OpenID Connect (un token web JSON
o JWT) per l'utente effettivo. Puoi utilizzare questo token per autenticarti con i servizi Google Cloud, come Cloud Run, configurati per accettarlo.
Per ulteriori informazioni, vedi Connettersi ai servizi Google Cloud.
Utilizzare JSON
Lavorare con gli oggetti JSON è simile a lavorare con XML, tranne per il fatto che l'analisi o la codifica di un oggetto JSON è molto più semplice.
Quando un'API restituisce una risposta JSON non elaborata, accedi alla risposta della stringa JSON utilizzando
il metodo
HTTPResponse.getContentText.
Dopo aver recuperato la stringa, utilizza JSON.parse() per analizzarla in un oggetto JavaScript.
// 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 convertire un oggetto JavaScript in una stringa JSON per un payload della 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.
Analizzare XML
Se un'API esterna restituisce una risposta XML non elaborata per una richiesta, accedi 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 effettui richieste XML a un'API, utilizza i
XmlService metodi per
creare l'XML da inviare.
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.