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
Você pode usar o serviço UrlFetch
para fazer
solicitações de API diretamente.
O exemplo a seguir usa API GitHub para pesquisar repositórios com 100 ou mais estrelas que mencionem "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 de serviços com o OAuth
As APIs que agem em nome de um usuário costumam exigir autorização, geralmente usando o Protocolo OAuth. O Apps Script não tem recursos suporte para o protocolo, mas existem bibliotecas de código aberto que podem ser usadas para execute o fluxo do OAuth e envie 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, o JSON
a resposta da string pode ser acessada usando o método
HTTPResponse.getContentText()
Depois que essa string for recuperada, basta chamar JSON.parse()
na string para receber 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 fazer uma representação de string de um objeto JavaScript para
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, você poderá acessar o
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, construa 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.