API esterne

Google Apps Script può interagire con le API di tutto il web. Questa guida mostra come utilizzare diversi tipi di API negli script.

Connettiti alle API pubbliche

Puoi utilizzare il servizio UrlFetch per effettuare direttamente le richieste API.

L'esempio seguente utilizza l'API GitHub per cercare repository con 100 o più stelle che menzionano "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);

Inviare richieste ai servizi con OAuth

Le API che agiscono per conto di un utente di solito richiedono l'autorizzazione, spesso usando il protocollo OAuth. Apps Script non offre 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:

Utilizza JSON

L'utilizzo degli oggetti JSON è simile all'utilizzo del codice XML, ma 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, è sufficiente chiamare JSON.parse() sulla stringa per ottenere una rappresentazione di 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 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 effettui 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.