Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Google Planilhas Avançado - #128 Projeto Completo - Assinatura Digital III

09/11/2023

Neste tutorial continuaremos com nosso projeto de assinaturas digitais dentro do Google Sheets, desta vez registrando o protocolo da assinatura para autenticação.

Protocolo de Assinatura

A ideia dessa aula é que quando um documento seja assinado isso gere um número de protocolo no banco de dados para que a assinatura seja realmente autenticada. Este é um dos motivos do banco de dados ser separado da planilha.

Precisaremos baixar a lib moment.js

O código final ficará assim:

let app = SpreadsheetApp;
let spreadsheetDoc = app.openByUrl('https://docs.google.com/spreadsheets/d/1i3NymFm9U0C4mOe_R_NH8HBXkwmXaR1xEXxx_fXG3ww/edit#gid=0');
let spreadsheetDB = app.openByUrl('https://docs.google.com/spreadsheets/d/1YGpeI12s2-JkuafRx7fPoKI5IhRn76eb3iUSFZXeacA/edit#gid=846667016');
let sheetDoc = spreadsheetDoc.getSheetByName('Página1');
let sheetUsers = spreadsheetDB.getSheetByName('USUÁRIOS');
let sheetProtocols = spreadsheetDB.getSheetByName('PROTOCOLOS');

/**
 * Solicitar email e senha do usuário
 */
function verifyUser()
{
  let ui = app.getUi();
  let prompt = ui.prompt('Digite o seu email:');
  let button = prompt.getSelectedButton();
  let ress = prompt.getResponseText();
  let emails = sheetUsers.getRange('B2:B').getValues().toString().split(',');
  if(button === ui.Button.OK){
    if(emails.indexOf(ress) == -1){
      ui.alert('Email não cadastrado!');
    }else{
      let rowEmail = emails.indexOf(ress)+2;
      let prompt2 = ui.prompt('Digite a senha:');
      let button2 = prompt2.getSelectedButton();
      let ress2 = prompt2.getResponseText();
      let password = sheetUsers.getRange('C2:C').getValues().toString().split(',');
      if(button2 === ui.Button.OK){
        if(password.indexOf(ress2) == -1){
          ui.alert('Senha inválida');
        }else{
          sheetDoc.getRange(`B17`).setValue(`O documento foi assinado pelo ${sheetUsers.getRange(`D${rowEmail}`).getValue()} com email ${sheetUsers.getRange(`B${rowEmail}`).getValue()}`);
          let lastRowProtocol = sheetProtocols.getLastRow()+1;
          let today = new Date();
          today = moment(today).format('DD/MM/YYYY');
          let token = Math.random().toString(36).slice(2);
          sheetProtocols.getRange(`A${lastRowProtocol}:D${lastRowProtocol}`).setValues([
            [
              lastRowProtocol-1,
              token,
              rowEmail-1,
              today
            ]
          ]);
          sheetDoc.getRange('B18').setValue(`Código de Autenticação: ${token}`);
        }
      }
    }
  }
}

Com o código acima, após cada assinatura, teremos um protocolo de autenticação da assinatura.

Então é isso, por hoje é só! Fiquem todos com Deus! Sucesso nos códigos e na vida!

Precisa de um professor? webdesignemfoco@gmail.com

Disse-lhes Jesus: Enchei de água essas talhas. E encheram-nas até em cima. João 2 - 1

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Google Planilhas Avançado - #127 Projeto Completo - Assinatura Digital II
Nesse tutorial continuamos nosso projeto completo solicitando ao usuário o email e senha para autenticação dentro do banco de dados criado na última aula.
Saiba mais!
Google Planilhas Avançado - #129 Projeto Completo - Assinatura Digital IV
Neste tutorial aprenderemos como realizar a assinatura digital dentro do Google Docs usando como banco de dados o Google Planilhas.
Saiba mais!
Google Planilhas
Neste curso abordaremos a fundo as funcionalidades do Google Planilha. Adentraremos no Google App Script e na API do Google Sheet. Aproveite.
Saiba mais!