O Planilhas Google é uma solução de planilhas baseada na nuvem que oferece suporte à colaboração em tempo real e ferramentas para visualizar, processar e comunicar dados.
Este tutorial demonstra como criar e implantar um fluxo de trabalho que cria um endpoint de callback (ou webhook), salva o URL do callback no Planilhas Google, pausa a execução e aguarda a aprovação humana pela planilha de planilhas para reiniciar o fluxo de trabalho. Saiba mais sobre o uso de callbacks.
Objetivos
Com este tutorial, você vai:
- Crie uma nova pasta no Google Drive. Essa pasta é usada para armazenar a planilha e permite que o fluxo de trabalho grave nela.
- Crie uma planilha do Google Planilhas para capturar uma aprovação e iniciar um callback para um fluxo de trabalho.
- Use o Google Apps Script, uma plataforma JavaScript baseada na nuvem que permite criar, ler e editar produtos do Google Workspace de forma programática. Ele pode ser usado para retomar um fluxo de trabalho pausado sempre que uma solicitação for aprovada por uma atualização na planilha.
- Crie e implante um fluxo de trabalho que chame o conector da API Google Sheets para anexar dados à planilha. O fluxo de trabalho é executado, pausado e retomado quando um callback é aprovado pela planilha. Saiba mais sobre os conectores do Workflows.
- Teste todo o processo e confirme se o fluxo de trabalho continua conforme o esperado.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
O tutorial também usa o Google Workspace. Os serviços empresariais que não estão incluídos nos apps gratuitos do Google para consumidores são faturáveis.
Antes de começar
É possível executar alguns dos comandos a seguir no console do Google Cloud ou usando a CLI do Google Cloud no terminal ou no Cloud Shell.
As restrições de segurança definidas pela sua organização podem impedir que você conclua as etapas a seguir. Para informações sobre solução de problemas, consulte Desenvolver aplicativos em um ambiente restrito de Google Cloud .
Console
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um Google Cloud projeto.
Verifique se o faturamento foi ativado para o projeto Google Cloud . Saiba como verificar se o faturamento está ativado em um projeto.
Ative as APIs Compute Engine, Sheets e Workflows.
Anote a conta de serviço padrão do Compute Engine, porque você vai associá-la ao fluxo de trabalho neste tutorial para fins de teste. Os novos projetos que ativaram a API Compute Engine têm essa conta de serviço criada com a função básica de editor do IAM e com o seguinte formato de e-mail:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Encontre o número do projeto na página Welcome do console do Google Cloud.
Para ambientes de produção, recomendamos criar uma nova conta de serviço e conceder a ela um ou mais papéis do IAM que contenham as permissões mínimas necessárias e sigam o princípio de privilégio mínimo.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Verifique se o faturamento foi ativado para o projeto Google Cloud . Saiba como verificar se o faturamento está ativado em um projeto.
Ative as APIs Compute Engine, Sheets e Workflows.
gcloud services enable \ compute.googleapis.com \ sheets.googleapis.com \ workflows.googleapis.com
Anote a conta de serviço padrão do Compute Engine, porque você vai associá-la ao fluxo de trabalho neste tutorial para fins de teste. Os novos projetos que ativaram a API Compute Engine têm essa conta de serviço criada com a função básica de editor do IAM e com o seguinte formato de e-mail:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Para recuperar o número do projeto:
gcloud projects describe PROJECT_ID
Para ambientes de produção, recomendamos criar uma nova conta de serviço e conceder a ela um ou mais papéis do IAM que contenham as permissões mínimas necessárias e sigam o princípio de privilégio mínimo.
Criar uma nova pasta no Google Drive
Crie uma nova pasta no Google Drive. Essa pasta é usada para armazenar a planilha. Ao configurar uma permissão para a pasta compartilhada, seu fluxo de trabalho tem permissão para gravar na planilha.
- Acesse drive.google.com.
- Clique em Novo > Nova pasta.
- Digite um nome para a pasta.
- Clique em Criar.
- Clique com o botão direito do mouse na nova pasta e selecione Compartilhar.
Adicione o endereço de e-mail da conta de serviço padrão do Compute Engine.
Isso dá à conta de serviço acesso à pasta. Quando você associa a conta de serviço ao seu fluxo de trabalho, ele tem acesso de edição a qualquer arquivo na pasta. Saiba mais sobre o compartilhamento de arquivos, pastas e drives.
Selecione o papel Editor.
Desmarque a caixa de seleção Notificar pessoas.
Clique em Compartilhar.
Criar uma planilha usando as Planilhas Google
Quando você cria uma planilha nas Planilhas Google, ela é salva no Google Drive. Por padrão, a planilha é salva na sua pasta raiz no Drive. Não é possível criar uma planilha diretamente em uma pasta especificada usando a API Google Sheets. No entanto, há alternativas, incluindo mover a planilha para uma pasta específica após criá-la, como é feito neste exemplo. Para mais informações, consulte Trabalhar com pastas do Google Drive.
Acesse sheets.google.com.
Clique em Novo
.
Uma planilha será criada e aberta. Cada planilha tem um valor
spreadsheetId
exclusivo, que contém letras, números, hifens ou sublinhados. Você pode encontrar o ID da planilha em um URL das Planilhas Google:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0
Anote esse ID, porque ele será necessário ao criar seu fluxo de trabalho.
Adicione cabeçalhos de colunas para corresponder ao exemplo abaixo:
O valor na coluna G, Aprovado?, é usado para iniciar callbacks no fluxo de trabalho.
Mova a planilha para a pasta do Google Drive que você criou antes:
- Na planilha, selecione Arquivo > Mover.
- Acesse a pasta que você criou.
- Clique em Mover.
Também é possível usar o
conector da API Google Sheets
para criar uma planilha. Ao usar o conector, o
spreadsheetId
pode ser recuperado do resultado resp
.
Exemplo:
- create_spreadsheet: call: googleapis.sheets.v4.spreadsheets.create args: body: connector_params: scopes: ${driveScope} result: resp - assign_sheet_id: assign: - sheetId: ${resp.spreadsheetId}
Ampliar as Planilhas Google usando o Apps Script
O Apps Script permite criar, ler e editar planilhas Google de maneira programática. A maioria dos scripts criados para as Planilhas manipula matrizes para interagir com as células, linhas e colunas em uma planilha. Para uma introdução ao uso do Apps Script com as Planilhas Google, consulte o Guia de início rápido da função personalizada.
Crie um projeto do Apps Script nas Planilhas Google:
- Abra a planilha do Planilhas Google.
- Selecione Extensões > Apps Script.
- No editor de script, clique em Projeto sem título.
- Dê um nome ao projeto e clique em Renomear.
Agora, seu script está vinculado à planilha, o que dá a ele habilidades especiais para alterar a interface do usuário ou responder quando a planilha é aberta.
Um projeto de script representa uma coleção de arquivos e recursos do Apps Script. Os arquivos de código em um projeto de script têm uma extensão
.gs
.Você pode usar o Apps Script para escrever funções personalizadas que podem ser usadas no Google Planilhas, assim como uma função integrada. As funções personalizadas são criadas usando o JavaScript padrão. Crie uma função:
- Abra seu projeto do Apps Script.
- Clique em Editor .
- Um arquivo de script aparece como um arquivo de projeto com o nome
Code.gs
. Para editar o arquivo, selecione-o. Substitua qualquer código no editor de script pelo código abaixo, que lê os dados na planilha e os transmite como entrada para uma execução de fluxo de trabalho:
Clique em Salvar
.
Os gatilhos instaláveis do Apps Script permitem que um projeto de script execute uma função especificada quando determinadas condições são atendidas, como quando uma planilha é aberta ou editada. Crie um acionador:
- Abra seu projeto do Apps Script.
- Clique em Acionadores .
- Clique em Adicionar acionador.
- Na caixa de diálogo Adicionar gatilho para YOUR_PROJECT_NAME, configure o
gatilho:
- Na lista Escolher a função a ser executada, selecione handleEdit.
- Na lista Escolha qual implantação deve ser executada, selecione Cabeça.
- Na lista Selecionar origem de eventos, selecione Da planilha.
- Na lista Selecionar tipo de evento, selecione Na edição.
- Na lista Configurações de notificação de falha, selecione Notificar diariamente.
- Clique em Salvar.
Se você receber uma solicitação para escolher uma Conta do Google, selecione a conta adequada e clique em Permitir.
Isso permite que seu projeto do Apps Script acesse, edite, crie e exclua suas planilhas do Google Sheets e se conecte a um serviço externo.
Um arquivo de manifesto do projeto do Apps Script é um arquivo JSON que especifica informações básicas do projeto que o Apps Script precisa para executar um script. O editor do Apps Script oculta arquivos de manifesto por padrão para proteger as configurações do projeto. Edite o arquivo de manifesto:
- Abra seu projeto do Apps Script.
- Clique em Configurações do projeto .
- Selecione a caixa de seleção Mostrar arquivo de manifesto "appsscript.json" no editor.
- Clique em Editor .
- O arquivo de manifesto aparece como um arquivo de projeto chamado
appsscript.json
. Para editar o arquivo, selecione-o. O campo
oauthScopes
especifica uma matriz de strings. Para definir os escopos de autorização usados pelo projeto, adicione uma matriz com os escopos que você quer oferecer suporte. Exemplo:{ "timeZone": "America/Toronto", "dependencies": { }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/spreadsheets" ] }
Isso define os escopos explícitos para:
- Conectar a um serviço externo
- Conferir, editar, configurar e excluir seus dados Google Cloud e conferir o endereço de e-mail da sua Conta do Google
- Ver, editar, criar e excluir todas as suas planilhas do Planilhas Google
Clique em Salvar
.
Implantar um fluxo de trabalho que grava em uma planilha e usa callbacks
Implante um fluxo de trabalho que é executado, pausado e retomado quando um callback é aprovado em uma planilha. O fluxo de trabalho é gravado em uma planilha de Sheets usando o conector da API Google Sheets.
Console
No console do Google Cloud, acesse a página Fluxos de trabalho:
Clique em
Criar.Insira um nome para o novo fluxo de trabalho:
workflows-awaits-callback-sheets
.Na lista Região, selecione us-central1 (Iowa).
Na Conta de serviço, selecione a conta de serviço padrão do Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Clique em Próxima.
No editor de fluxo de trabalho, insira a seguinte definição:
Substitua o valor do marcador de posição
sheetId
pelospreadsheetId
.Clique em Implantar.
gcloud
Crie um arquivo de código-fonte para seu fluxo de trabalho:
touch workflows-awaits-callback-sheets.yaml
Em um editor de texto, copie o seguinte fluxo de trabalho para o arquivo de código-fonte:
Substitua o valor do marcador de posição
sheetId
pelospreadsheetId
.Implante o fluxo de trabalho digitando o seguinte comando:
gcloud workflows deploy workflows-awaits-callback-sheets \ --source=workflows-awaits-callback-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua
PROJECT_NUMBER
pelo número do projeto Google Cloud. Para recuperar o número do projeto:gcloud projects describe PROJECT_ID
Testar o fluxo completo
Execute o fluxo de trabalho para testar o fluxo completo. Quando um fluxo de trabalho é executado, a definição atual associada a ele também é.
Console
No console do Google Cloud, acesse a página Fluxos de trabalho:
Na página Fluxos de trabalho, selecione o fluxo de trabalho workflows-awaits-callback-sheets para acessar a página de detalhes dele.
Na página Detalhes do fluxo de trabalho, clique em play_arrow Executar.
Clique em Executar novamente.
O fluxo de trabalho é iniciado e o estado de execução dele é Running. Os registros também indicam que o fluxo de trabalho está pausado e aguardando:
Execute steps here before waiting for callback from sheets ... Started waiting for callback from sheet 1JlNFFnqs760M_KDqeeeDc_qtrABZDxoalyCmRE39dpM
Verifique se o fluxo de trabalho gravou os detalhes do callback em uma linha da planilha.
Por exemplo, você vai encontrar o ID de execução do fluxo de trabalho na coluna ID de execução, um endpoint de callback na coluna URL do callback e FALSO na coluna Aprovado?.
Na planilha, mude FALSE para TRUE.
Após um ou dois minutos, a execução será retomada e concluída com um estado de execução de Concluído.
gcloud
Abra um terminal.
Execute o fluxo de trabalho:
gcloud workflows run workflows-awaits-callback-sheets
O fluxo de trabalho é iniciado, e a saída precisa indicar que ele está pausado e em espera:
Waiting for execution [a8361789-90e0-467f-8bd7-ea1c81977820] to complete...working.
Verifique se o fluxo de trabalho gravou os detalhes do callback em uma linha da planilha.
Por exemplo, você vai encontrar o ID de execução do fluxo de trabalho na coluna ID de execução, um endpoint de callback na coluna URL do callback e FALSO na coluna Aprovado?.
Na planilha, mude FALSE para TRUE.
Depois de um ou dois minutos, a execução será retomada e concluída com um estado de execução de
SUCCEEDED
.
Limpar
Se você criou um novo projeto para este tutorial, exclua o projeto. Se você usou um projeto atual e quer mantê-lo sem as alterações incluídas neste tutorial, exclua os recursos criados para o tutorial.
Exclua o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.