API esterne

Google Apps Script può interagire con le API da tutto il web. Questa guida mostra come lavorare con diversi tipi di API nei tuoi 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 un'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:

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 effettui richieste XML a un'API, crea il file 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.