Transcript
Page 1: Google AppsScript - Overview
Page 2: Google AppsScript - Overview

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)

Page 3: Google AppsScript - Overview

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.

Page 4: Google AppsScript - Overview

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

Page 5: Google AppsScript - Overview

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

Page 6: Google AppsScript - Overview

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

Page 7: Google AppsScript - Overview

WebApp e Gadgets

Page 8: Google AppsScript - Overview

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

Page 9: Google AppsScript - Overview

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( ).

Page 10: Google AppsScript - Overview

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.

Page 11: Google AppsScript - Overview

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

Page 12: Google AppsScript - Overview

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

Page 13: Google AppsScript - Overview

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

Page 14: Google AppsScript - Overview

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

Page 15: Google AppsScript - Overview

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

Page 16: Google AppsScript - Overview

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

Page 17: Google AppsScript - Overview

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

Page 18: Google AppsScript - Overview

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

Page 19: Google AppsScript - Overview

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

Page 20: Google AppsScript - Overview

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

Page 21: Google AppsScript - Overview

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

Page 22: Google AppsScript - Overview

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

Page 23: Google AppsScript - Overview

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

Page 24: Google AppsScript - Overview

ScriptDB - Métodos

Page 25: Google AppsScript - Overview

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

Page 26: Google AppsScript - Overview

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

Page 27: Google AppsScript - Overview

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

Page 28: Google AppsScript - Overview

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

Page 29: Google AppsScript - Overview

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

Page 30: Google AppsScript - Overview

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

Page 31: Google AppsScript - Overview

● 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

Page 32: Google AppsScript - Overview

Alexandre Jacquet

[email protected]

Breno Araújo

[email protected]

<Thank You!><Obrigado!><Gracias!>