Inicie processos no Fluig a partir do Google Forms.
Inicie processos no fluig à partir do google forms.
Criar formulários públicos pode ser um problema no Fluig, já que a plataforma não permite que o formulário e o processo seja publicado sem a autenticação na plataforma, portanto para usá-los é necessário utilizar um login e senha.
Apesar de existirem soluções que podem ser desenvolvidas no Fluig, para exibir o formulário utilizando páginas públicas, tenho um certo receio de expor algum dataset ou ponto de entrada publicamente (veja aqui o porquê), por este motivo irei demonstrar neste artigo um passo a passo de como integrar o Google Forms ao Fluig.
Criar uma solução para entrada de dados como um sistema ou interface também é uma solução, mas dependendo do projeto uma integração utilizando o Google Forms pode ser mais que o suficiente, já que não há preocupações com infraestrutura.
Aliás, esta combinação é perfeita, já que o custo é zero e a solução atende aos requisitos de segurança, pois os dados do formulário estão protegidos pela infraestrutura do Google.
Outro ponto importante a ser destacado é a velocidade do desenvolvimento, dada a facilidade de criar formulários no Google.
Como será o processo.
Neste exemplo será tratado um processo de seleção, contendo três campos: Nome, Telefone e Pretensão salarial.
Após o preenchimento do formulário por parte do usuário, o próprio Google Forms irá buscar estas informações digitadas e irá conectar ao Fluig, utilizando webservices da plataforma, para iniciar o processo desejado.
As integrações Fluig
Há duas formas de integração com a plataforma fluig, neste exemplo irei demonstrar a integração utilizando REST. Assumindo que você já tenha criado o seu processo e o seu formulário, siga os passos abaixo.
Acesse este link e confira a documentação “Cadastrar Aplicativo no Fluig“. Você vai precisar configurar um usuário para autenticação OAuth pelo Fluig, como resultado deverá obter os seguintes dados: CUSTOMER_KEY, CUSTOMER_SECRET, ACCESS_TOKEN e TOKEN_SECRET.
Após realizar o procedimento acima você deverá terá os dados necessários para autenticação no fluig.
Em caso de dúvidas entre em contato.
O formulário do Google Forms.
Neste artigo você deverá ser capaz de construir um formulário do Google Forms. Para isso, clique aqui e crie um formulário semelhante ao criado abaixo.
Após criar o formulário e publicar, vá até as propriedades ( ícone de três pontos, exibido no canto superior direito da tela ) .
Após clicar no ícone vá até a opção Editor de Script.
Editor de Script do Google Forms.
A primeira coisa a ser feita é clicar em Bibliotecas e adicionar uma biblioteca para autenticação por OAuth1 , já que o Fluig não permite a autenticação por Auth2.
Em bibliotecas clique no botão para incluir.
Na janela que é aberta insira o código abaixo:
1CXDCY5sqT9ph64fFwSzVtXnbjpSfWdRymafDrtIZ7Z_hwysTY7IIhi7s
Observação: O Google descontínuo o uso do OAuth1 em 2015, conforme pode ser conferido nesta documentação . Para utilizar o OAuth1 a google recomendou utilizar uma biblioteca opensource, que é biblioteca representada pelo script consultado na imagem acima e pode ser consultada neste repositório.
Na janela, vá na aba de codificação, conforme exibido na imagem abaixo, e renomeie o arquivo gerado para startProcess.gs.
Após criar o arquivo é necessário inserir o código Google Script.
Neste exemplo abaixo o código irá ler o último registro inserido e em seguida realiza a chamada do webservice do fluig responsável por iniciar a solicitação na plataforma.
/**
* CONFIGURACOES DE INTEGRACAO FLUIG
*/
var FLUIG_BASE_URL = "http://minhaurl.com";
var PROCESS_NAME = 'selecionar_pessoa';
var CONSUMER_KEY = 'x';
var CONSUMER_SECRET = 'x';
var ACCESS_TOKEN = 'x';
var TOKEN_SECRET = 'x';
function startProcess() {
var form = FormApp.getActiveForm();
var formResponses = form.getResponses();
var formResponseslength = formResponses.length;
/**
* Obter o último registro do formulário.
*/
var nome = formResponses[formResponseslength-1].getItemResponses()[0].getResponse();
var telefone = formResponses[formResponseslength-1].getItemResponses()[1].getResponse();
var salario = formResponses[formResponseslength-1].getItemResponses()[2].getResponse();
var service = getFluigService();
var url = FLUIG_BASE_URL + '/process-management/api/v2/processes/' + PROCESS_NAME + '/start';
/**
* Conteúdo para inserir no formulário do processo.
*/
var data = {
'targetAssignee': 'academy.aluno',
'subProcessTargetState': "0",
'comment': "",
'formFields': {
"nome" : nome,
"telefone" : telefone,
"salario": salario
}
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(data)
};
var response = service.fetch(url, options);
var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
Logger.log(nome);Logger.log(telefone);Logger.log(salario)
MailApp.sendEmail("[email protected]","STATUS INTEGRACAO", "SATUS DA INTEGRACAO");
}
function getFluigService() {
return OAuth1.createService('fluig')
.setConsumerKey(CONSUMER_KEY)
.setConsumerSecret(CONSUMER_SECRET)
.setAccessToken(ACCESS_TOKEN, TOKEN_SECRET);
}
O resultado final deve se parecer com a imagem abaixo.
Acionadores ( Gatilhos ) do Google Forms.
Os acionadores do Google Forms nada mais são que gatilhos, que irá executar alguma ação em determinado momento.
Neste exemplo será demonstrado a execução do script logo após a inserção de uma nova resposta do formulário.
Na tela de acionadores clique em adicionar acionador – botão azul no canto inferior direito da tela.
Ao abrir a tela preencha o Acionador conforme imagem abaixo.
O resultado esperado é este.
Resultado
Após o preenchimento dos dados clique em salvar.
Abaixo o processo inicializado automaticamente pelo aplicativo do Google Forms.
Erros
O próprio Google Script disparou um erro assim que eu forcei uma conexão inexistente, entretanto será necessário realizar mais testes e controles.
Repositório
Acesse aqui o repositório que contém o processo e o formulário deste projeto.
Conclusão
Este é um modelo de integração entre o Google Forms e o Fluig, utilizando a autenticação OAuth1 do Fluig.
Uma sugestão de melhoria é construir alertas por e-mail para avisar de possíveis inconsistências.
Referências
https://stackoverflow.com/questions/50491535/how-to-call-web-service-on-google-app-script
https://developers.google.com/apps-script/reference/forms/form
https://github.com/googleworkspace/apps-script-oauth2
https://github.com/googleworkspace/apps-script-oauth1
https://github.com/googleworkspace/apps-script-oauth1/blob/master/samples/Yelp.gs
Comments ()