O Google Apps Script pode interagir com APIs de toda a Web. Este guia mostra como trabalhar com diferentes tipos de APIs nos scripts.
Conectar-se a APIs públicas
Use o serviço UrlFetch
para fazer
solicitações de API diretamente.
O exemplo a seguir usa a API do GitHub para procurar repositórios com 100 ou mais estrelas que mencionam "Apps Script". Essa solicitação de API não requer autorização nem uma chave de 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);
Fazer solicitações a serviços com OAuth
As APIs que agem em nome de um usuário geralmente exigem autorização, muitas vezes usando o protocolo OAuth. O Apps Script não oferece suporte integrado ao protocolo, mas há bibliotecas de código aberto que podem ser usadas para executar o fluxo OAuth e enviar as credenciais com suas solicitações:
- OAuth1 para o Apps Script: compatível com OAuth 1.0 e 1.0a.
- OAuth2 para Apps Script: compatível com OAuth2.
Trabalhar com JSON
Trabalhar com objetos JSON é semelhante a trabalhar com XML, exceto pelo fato de que analisar ou codificar um objeto JSON é muito mais fácil.
Se a API solicitada retornar uma resposta JSON bruta para uma solicitação, a resposta da string JSON poderá ser acessada usando o método
HTTPResponse.getContentText()
.
Depois que essa string for recuperada, basta chamar JSON.parse()
nela para ter uma
representação de objeto nativo.
// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);
Da mesma forma, para criar uma representação de string de um objeto JavaScript e fazer uma solicitação, use 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.
Analisar XML
Se uma API externa retornar uma resposta XML bruta para uma solicitação, acesse a
resposta XML usando o método
HTTPResponse.getContentText()
.
// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);
Ao fazer solicitações XML para uma API, crie o XML a ser enviado usando
os métodos 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.