O que o Google Apps Script
Google Apps script é uma linguagem de script baseada em JavaScript na nuvem,
que permite extender a utilização do Google Apps.
● Criar funções específicas dentro do Google Spreadsheet
● Criar processos que possam englobar diversas aplicações (Formulários,
Documentos, Emails, etc)
● Criar e publicar aplicações web
● Agendar tarefas
● Integração com bancos de dados (JDBC)
Ambiente de Desenvolvimento
Para desenvolver utilizando o Google Apps Script, a única ferramenta necessária é
um navegador de WEB (atual), nele é possível criar e gerenciar os arquivos e
projetos existentes.
Para acessar o editor de scripts existem 3 opções, sendo elas:
1. Através do Google Drive
Clique em Criar > Script (Caso não esteja disponível, clique em Criar > Conectar mais aplicativos e
pesquise por Script)
2. Através de um Documento, Planilha ou Formulário
Crie um documento, planilha ou formulário e em seguida clique em Ferramentas > Editor de Scripts
3. Através de um Google Sites Script
A partir do Google Sites clique em Gerenciar este site > Apps Script, selecione ou crie um novo script
Ambiente de Desenvolvimento
Execução dos scripts
Existem diversos métodos de execução dos scripts, sendo os principais:
● Editor de Scripts● Função específica no Google Spreadsheets● Web app*● Google Sites Gadget*● Time-driven Trigger● Container-specific Trigger
○ Spreadsheets, Documents, Forms, Sites
Para a execução de Web Apps e Gadgets no Google Sites são necessários os
seguintes passos:
● Criar um método doGet(e)
● Criar uma interface utilizando UiService ou HtmlService
● Salvar uma versão da aplicação
Deploy da aplicação Web
● Selecione Publicar > Implantar como aplicativo da web
● Selecione as opções do projeto
○ Versão do Projeto
○ Executar aplicação como
○ Quem tem acesso a aplicação
WebApp e Gadgets
WebApp e Gadgets
WebApp e GadgetsInserção do Gadget no Google Sites
● Navegue até a página que deseja
inserir o gadget.
● Selecione para editar a página
● Clique em Inserir > Google Apps
Script Gadget
● Selecione o script ou adicione a URL
● Salve as alterações
Container ExtensionsOutra opção para execução dos scripts é a criação de novas abas para execução a partir de aplicações
como Docs, Sheets e Forms, sendo necessário apenas a definição de um método onOpen( ).
Apps Script ServicesAtravés do Google Apps Script é possível interagir com uma série de serviços para manipulação dos dados,
entre eles serviços Google ou de terceiros (3rd parties)
Google Apps Services - Estes serviços são divididos em APIs específicas onde cada um provê acesso a
um conjunto de funcionalidades.
Advanced Google Services - São serviços não habilitados por default, devido a utilização restrita, para a
sua utilização de parte destes serviços será necessária a criação de um projeto específico e uma chave API
dentro do Google Apps API Console.
Por se tratar de uma linguagem baseada em JavaScript, o Google Apps Script permite a interação com
outras APIs.
● Serviços adicionais Google ou 3rd-Party API - A fim de garantir a integração da plataforma, o
Google Apps Script permite realizar REQUESTs e RESPOSES HTTP/HTTPS permitindo a criação ou
utilização de APIs externas, utilizando o UrlFetch
● SOAP Services - Outra opção é a utilização do SOAP Service garantindo a comunicação com web
services baseados nesta tecnologia
Para a manipulação dos dados, é possível trabalharmos com XML ou JSON.
External API
Bibliotecas são projetos que podem ser inseridos pelos usuários a fim de ganhar acesso a novas
funcionalidades.
Para incluir uma biblioteca no projeto, será necessário:
1. Ter o direito de leitura a biblioteca desejada
2. Obter a chave do Projeto(Arquivo > Propriedades do Projeto)
3. Selecionar Recursos > Gerenciar Bibliotecas
4. Colar a chave do Projeto em Encontrar Biblioteca e confirmar
5. Clique em versões para selecionar a versão que deseja utilizar
6. Caso deseje alterar o identificador da API, é o campo utilizado no auto-complete do editor
7. Habilite o modo desenvolvedor caso deseje alterar a versão selecionada
8. Clique Salvar
Gerenciando Bibliotecas
Gerenciando VersõesUma versão é uma cópia estática do script, uma vez salvo ele não poderá ser modificado, apenas deletando-
o. Esta funcionalidade é muito útil quando uma aplicação sofre muitas alterações, permitindo sempre manter
um registro das mesmas.
Para criar um versão siga o procedimento abaixo:
1. Selecione Arquivo > Gerenciar Versões
2. Digite uma descrição da versão a ser criada
Monitoramento e CotasO Google Apps Script impõe cotas de uso para diferentes serviços. As cotas são distribuídas a fim de manter
o serviço de qualidade da plataforma e estão sujeitas a alteração a qualquer momento, caso seja necessário
aumentar a cota de um determinado serviço é possível através do seguinte formulário, onde uma vez
aprovado será incrementa.
Para monitoramento dos serviços e das quotas, a Google disponibiliza um portal: https://docs.google.
com/macros/dashboard
EventosUm evento é uma ação que acontece quando o estado de um objeto é alterado. O Google Apps Script é
capaz de detectar alguns eventos, permitindo a execução de uma função a partir deste.
Lista de eventos disponíveis:● Clock tick (execução de scripts de tempos em tempos, time-driven)
● Instalação de scripts
● Spreadsheets
○ Ao abrir
○ Ao alterar
○ Ao editar
○ Ao enviar um formulário
● Formulário
○ Ao abrir o editor
○ Ao enviar um formulário
● Documentos
○ Ao abrir
Um trigger é um recurso que monitora a execução dos eventos e executa uma função uma vez que ativado.
Triggers Simples - São triggers de sistema do Google Apps Script que permitem executar funções a partir
dos eventos
● onInstall - É ativada a partir da instalação do script
● onOpen - É ativada a partir da abertura de uma planilha, documento ou formulário
● onEdit - É ativada a partir da edição de uma planilha
Triggers Instaladas - São configuradas a partir do menu de Recursos ou a partir de um método declarado
utilizando ScriptApp.newTrigger()
Time-Driven Trigger - Permite o agendamento de execução do script
Error Handling - Caso uma trigger não seja executada, o Apps Script enviará um email informando do erro,
por default este email será enviado a meia noite e contém as informações de cada falha.
Triggers
UiServiceO UiService permite a criação de interfaces de usuário utilizando widgets, semelhante ao padrão java.swing,
recomenda-se sua utilização quando o navegador utilizado não suporta HTML5, substituindo o HtmlService.
Elementos utilizados:● Push buttons
● Radio buttons
● Toggle buttons
● Check Boxes
● Text fields
● Labels
● Title
● List Boxes
● Dialog Boxes
● Painéis de diversos tipos
● Handlers
Esta classe permite a criação de páginas web garantindo a interação com os scripts criados, esta
funcionalidade garante a criação de interfaces customizadas integradas ao Google Apps.
Dentro dos arquivos HTML é possível utilizar grande parte dos recursos HTML, CSS e client-side JavaScript.
Esta página será "apresentada" utilizando HTML5, embora algumas funcionalidades HTML5 não estarão
disponíveis.
Outra possibilidade é a criação de scriptlets que são processados a nível de servidor antes da sua
renderização
HtmlService
O google.script é uma API JavaScript executada em client-side, permitindo a interação entre front-end com o
back-end, esta interação é asíncrona, permitindo até 10 conexões simultâneas a nível de servidor.
Parametros e retornos - É possível criar métodos que recebam como parametros entradas do front-end
assim como é possível o servidor retornar dados ao front-end, permitindo uma interação entre ambos.
Handlers - Devido a execução do código a nível do cliente ser contínuo o Google Script permite a criação de
handlers para tratar o retorno dos dados do servidor assim como falhas
HtmlService : google.script
User Objects - É possível reutilizar o conceito dos Handlers para múltiplas chamadas ao servidor
específicando o tipo de objeto que será passado como segundo parâmetro.
HtmlService : google.script
Forms - Caso o servidor invoque uma função com elemento form como parametro, o form se transformará
em um objeto único, traduzidos da seguinte forma:
● campos de nomes se tornarão chaves (keys)
● campos de valores se tornarão valores (values)
Todos os valores serão convertidos a strings, exceto aqueles que tenham o valor file-input que tornarão Blob
Objects
HtmlService : google.script
Funções Private - As funções terminadas com underline "_" são consideradas privadas no Google Apps
Script, sendo assim não podem ser executadas via google.script portanto seus nomes nunca serão
encaminhados ao client-side, contudo é possível encapsular o acesso através de outras funções.
HtmlService : google.script
ScriptDB é um banco de dados orientado a Objetos em JavaScript, onde cada projeto tem um banco de
dados único, permitindo salvar, atualizar, buscar objetos JavaScripts, onde é possível armazenar
permanentemente maps, arrays, strings e números.
Instanciando o Banco de DadosPara instanciar o DB no Google Apps Script, basta criar um método que invoque ScriptDb.getMyDB(),
este método retornará a instância pronta para uso.
ScriptDB
ScriptDB - Métodos
O Google Apps Script tem a capacidade de conectar-se a qualquer banco de dados via JDBC com o serviço
Jdbc Services, permitindo manipulação de dados em instâncias: MySQL, Microsoft SQL Server e Oracle,
além destas ele também se conecta facilmente a dbs em nuvem como por exemplo o Google Cloud SQL.
Para criar uma conexão ao banco de dados, primeiramente é necessário verificar a conexão entre a Google
e o Banco de Dados.
Através do Google Apps Script o método que permite a conexão é
var conn = Jdbc.getConnection('jdbc:<servertype>//<host>:<port>/<instance>', 'user', 'password');
JDBC
Para permitir que a Google se conecte ao DB local será necessário a liberação das seguintes ranges de IP
no firewall.
JDBC - Local Databases
ip4:216.239.32.0/19
ip4:64.233.160.0/19
ip4:66.249.80.0/20
ip4:72.14.192.0/18
ip4:209.85.128.0/17
ip4:66.102.0.0/20
ip4:74.125.0.0/16
ip4:64.18.0.0/20
ip4:207.126.144.0/20
ip4:173.194.0.0/16
216.239.32.0 - 216.239.63.255
64.233.160.0 - 64.233.191.255
66.249.80.0 - 66.249.95.255
72.14.192.0 - 72.14.255.255
209.85.128.0 - 209.85.255.255
66.102.0.0 - 66.102.15.255
74.125.0.0 - 74.125.255.255
64.18.0.0 - 64.18.15.255
207.126.144.0 - 207.126.159.255
173.194.0.0 - 173.194.255.255
ou
Quando um script é publicado via Web App, dois métodos de callback podem ser utilizados
doGet() e doPost(), permitindo a manipulação dos REQUEST e RESPONSES.
Estes métodos são geralmente utilizados para gerar um interfaces web (UI), utilizando UiApp e
o HtmlService, contudo através do ContentService é possível criar aplicações onde o retorno
seja um conteúdo texto puro.
Esta funcionalidade permite a criação de Web Services retornando conteúdos em textos
puros, XMLs, RSS, ATOM ou JSON.
ContentService
Lista de Serviços Disponíveis e sua breve descrição:
● Calendar - Permite o script ler e atualizar a agenda do usuário, provê acesso a agenda principal.
● Contacts - Permite o usuário acessar os contatos, criando, atualizando e removendo-os
● DocsList - Contem os métodos para criação de arquivos e pastas
● Document - Serviço que permite a criação e edição de documentos
● Domain - Permite administradores do domínio criar e modificar usuários, grupos, apelidos
● Drive - Permite criar, encontrar e modificar arquivos e pastas no Google Drive
● Finance - Permite executar funções Google Finance para obter informações da bolsa de valores
● Forms - Permite criar, acessar e modificar Google Forms
● Gmail - Permite o envio e acesso do Gmail do usuário
● Groups - Permite realizar consultas ao serviços de Grupos do Google Apps
● Language - Permite a tradução automática de um texto
● Maps - Permite a geração automática de mapas, criar rotas e converter endereços em coordenadas
● Sites - Permite acessar o serviço do Google Sites, para criação de conteúdo entre outros
● Spreadsheet - Permite a criação, acesso e modificação de planilhas
Google Apps Services
Advanced Google ServicesLista de Serviços Disponíveis e sua breve descrição:
● AdSense - Permite o acesso ao inventório e habilidade de gerar relatórios
● Analytics - Permite visualizar e gerenciar dados no Google Analytics
● BigQuery - Permite interagir e analisar grande quantidade de dados
● Prediction - Permite acessar a plataforma de IA da Google para criação de Smart Applications
● Tasks - Permite a criação e gestão das listas de tarefas
● UrlShortener - Permite a criação, inspeção e gestão de short URLs
Lista de Serviços Disponíveis e breve descrição.
● Base - Permite acessar informações básicas como endereço de email, usuários entre outros
● Cache - Permite o script gerar um cache temporário
● Charts - Permite a criação de gráficos utilizando Google Chart Tools, utilizado dentro do UiServices
● Content - Permite gerar conteúdos em diversos formatos, como por exemplo: texto, XML, JSON
● Html - Permite os scripts retornarem valores HTML
● Jdbc - Permite os scripts conectarem-se a banco de dados Jdbc (MySQL, Oracle, SQL Server)
● Lock - Criar travas para evitar acessos concorrentes a trechos de código
● Mail - Permite o script enviar emails em nome dos usuários
● Properties - Permite armazenameto de dados como propriedades (script e user level)
● Script - Permite a criação de triggers e controlar a publicação dos scripts
● ScriptDb - Permite a utilização de um banco de dados simples
● Soap - Permite acessar Web Services SOAP descritos via WSDL
● Ui - Permite a criação de interfaces gráficas
● UrlFetch - Permite os scripts acessarem outros recursos através de requests HTTP/HTTPS
● Utilities - Provê métodos para encoding/decoding, formatação de datas e manipulação JSON
● XML - Permite os scripts converter e navegar em documentos XML
Script Services
● Developer Google Apps <https://developers.google.com/google-apps/>
● Developer Google Apps Script <https://developers.google.com/apps-script/>
● Google Apps Script Chrome App <http://goo.gl/blK8M>
● Google Apps Script Issues <https://code.google.com/p/google-apps-script-
issues/>
● Stackoverflow Apps Script <http://stackoverflow.com/questions/tagged/google-
apps-script>
● Google Apps Script Book <http://goo.gl/gB1gZ>
● Google Apps Script Sample <https://sites.google.com/site/scriptsexamples/>
Referências
Alexandre Jacquet
Breno Araújo
<Thank You!><Obrigado!><Gracias!>
Recommended