Histórico da Página
...
Autenticação Google Sheets
...
Para realizar a configuração das credenciais do google sheets via TOTVS iPaaS você deve seguir alguns passos para gerar os tokens necessários e criar o fluxo de autorização abaixo:
Pré-requisitos
...
Para a utilização do aplicativo é necessário ter:
- Conta google
- Projeto na GCP (Google Cloud Platform)
Tutorial para gerar credenciais
...
01. Acessar o TOTVS iPaaS através da URL https://ipaas.totvs.app;
02. Através do menu, acessar a página de aplicativos e buscar por Google Workspaces;
03. Na tela do aplicaitivo acessar a aba "Contas" e em seguida clicar em "Cadastrar Conta"
04. Insira o nome da conta e escolha o ambiente do google que você utilizará (Neste tutorial vamos utilizar o google sheets). Após selecionar o ambiente os dados abaixo serão necessários para o cadastro da conta:
Informações | ||
---|---|---|
| ||
Auth URL: Url de autenticação necessária para o fluxo do Oauth Acess Token URL: Url para gerar o Token de acesso ao serviço Code: Código do aplicativo Redirect URI: Indica para onde o servidor de autorização deve redirecionar o usuário após a autorização bem-sucedida. Esta URI deve ser previamente registrada com o provedor de serviços OAuth Refresh Token URL: Url para realizar o fluxo de refresh token mantendo válido a autorização do aplicativo Client Id: Token id do cliente Client Secret: Hash password do cliente Scope: Especifica o escopo das permissões solicitadas pelo cliente. Por exemplo, acesso somente leitura ou acesso de gravação Acess Type: Define como o token de acesso deve ser tratado pelo provedor de serviços OAuth Client Authentication: Escolher entre basic ou in body para envio das credenciais. |
05. Acessar a url do google apis https://console.cloud.google.com/apis/library/browse?q=sheets e clicar no aplicativo Google Sheets API
06. Caso você não tenha um projeto na GCP ainda, será necessário criá-lo conforme imagem abaixo:
- Clique em selecionar projeto
- Novo projeto
- Informe os campos necessários
- Após o projeto criado, clique em ATIVAR
07. Na tela do aplicativo na GCP, clique em CRIAR CREDENCIAIS ou em Credenciais no menu esquerdo
08.
Configuração
...
Todos os campos para a configuração do componente SmartLink Hook são opcionais, porém torna-se recomendável a informação de pelo menos um deles. Sendo uma das opções abaixo:
- Tipo: parâmetro que é passado com a chave type no cabeçalho, geralmente o equivalente à subscrição;
- Audiência: parâmetro que é passado com a chave audienceno cabeçalho;
- Demais filtros de cabeçalho: possível adicionar outros filtros conforme a necessidade, tendo como parâmetro o cabeçalho a ser filtrado (chave) e seu respectivo valor recebido.
Simular recebimento no serviço On-Premises
...
Para simular o envio de uma aplicação On-Premises para o SmartLink é possível utilizar os endpoints indicados no Apêndice D e Apêndice E.
Utilização dos dados de entrada
...
Ao receber uma mensagem de gatilho para o diagrama, é possível resgatar o conteúdo tanto do corpo da mensagem quanto do cabeçalho. Ambos, são equivalentes respectivamente ao payload
e headers/properties
do message broker.
SmartLink Sender
...
O SmartLink Sender é um componente do TOTVS iPaaS onde é possível utilizá-lo como um dos processos do seu diagrama. Este componente serve para enviar mensagens ao message broker da plataforma TOTVS Apps, consequentemente, ao elemento Behavior Sharing do SmartLink, que possibilitará o
recebimento nos serviços On-Premises.
Este componente é assíncrono, portanto, depois de enviada a mensagem para a plataforma, não há nenhuma saída para o mesmo.
Configuração
...
A configuração do componente SmartLink Sender possui os seguintes campos baseados em sua maioria na documentaçãoOpens in new window or tab:
- Nome: nome do componente que será exibido na rastreabilidade do TOTVS iPaaS;
- Tipo da subscrição (opcional): cabeçalho type da documentação acima mencionada, pode ser consultada na aba subscriçõesda fila que deverá receber a mensagem conforme imagem abaixo:
- Formato do evento: formato conforme a RFC da documentação acima mencionada, podendo ser CloudEvents ou TOTVS Message por convenção;
- Corpo: texto livre que irá trafegar no corpo da mensagem. Deve-se atentar ao formato de evento escolhido para que o corpo da mensagem trafegue conforme a documentação orienta (
JSON
,XML
,plain text
, etc).
As configurações são diferentes dependendo da escolha do formato do evento, porém, todas são opcionais e estão documentadas na RFC000011 (Opens in new window or tab).
Simular envio ao serviço On-Premises
...
Para simular o envio do TOTVS iPaaS para uma aplicação On-Premises, após executar um diagrama com o componente SmartLink Sender, é possível utilizar o endpoint correspondente no Apêndice Fpara recuperar o conteúdo da primeira mensagem na fila que está indo para aplicação On-Premises, e na
sequência, utilizar o endpoint correspondente no Apêndice G para removê-la da fila (ack
).
É possível também através do monitor SmartLink verificar quantas mensagens chegaram para a fila do seu Tenant.
Apêndices
...
Apêndice A - Validar RAC no Tenant:
Utilize o token de usuário do Accounts onde lê-se {USER_TOKEN}.
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://rac.dev.totvs.app/totvs.rac/api/v1/fluigIdentity/authorization/roles' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {USER_TOKEN}' \
--data '[] |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://rac.staging.totvs.app/totvs.rac/api/v1/fluigIdentity/authorization/roles' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {USER_TOKEN}' \
--data '[] |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://rac.totvs.app/totvs.rac/api/v1/fluigIdentity/authorization/roles' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {USER_TOKEN}' \
--data '[] |
Apêndice B - Gerar Token RAC
...
As variáveis CLIENT_ID e CLIENT_SECRET são enviadas ao email administrador do Tenant no momento de sua criação.
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://totvs.rac.dev.totvs.app/totvs.rac/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={CLIENT_ID}' \
--data-urlencode 'client_secret={CLIENT_SECRET}' \
--data-urlencode 'scope=authorization_api' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://totvs.rac.staging.totvs.app/totvs.rac/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={CLIENT_ID}' \
--data-urlencode 'client_secret={CLIENT_SECRET}' \
--data-urlencode 'scope=authorization_api' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://totvs.rac.totvs.app/totvs.rac/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={CLIENT_ID}' \
--data-urlencode 'client_secret={CLIENT_SECRET}' \
--data-urlencode 'scope=authorization_api' |
Apêndice C - Configurar Fila para o Tenant SmartLink
...
As variáveis a serem substituídas são:
- TOKEN_RAC = Token RAC obtido conforme
Apêndice B
; - SUBSCRIPTION_TYPE = Texto de tamanho livre sem caracteres especiais representando o tipo de subscrição, utilizado muitas vezes para filtros;
- RAC_TENANT_ID = Tenant do RAC obtido no
Apêndice A
; - PRODUCT_NAME = Texto de tamanho livre contendo o nome do produto responsável pela mensagem (pode ser tanto iPaaS quanto o produto on-premises);
- REQUEUE_COUNT = Quantidade máxima de reinfileiramento da mensagem antes de ir para a deadletter.
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.dev.totvs.app/api/v1/link/setup' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--header 'Content-Type: application/json' \
--data '{
"subscriptions": ["{SUBSCRIPTION_TYPE}"],
"tenants": ["{RAC_TENANT_ID}"],
"productName": "{PRODUCT_NAME}",
"requeueCountMax": {REQUEUE_COUNT}
}' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.staging.totvs.app/api/v1/link/setup' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--header 'Content-Type: application/json' \
--data '{
"subscriptions": ["{SUBSCRIPTION_TYPE}"],
"tenants": ["{RAC_TENANT_ID}"],
"productName": "{PRODUCT_NAME}",
"requeueCountMax": {REQUEUE_COUNT}
}' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.totvs.app/api/v1/link/setup' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--header 'Content-Type: application/json' \
--data '{
"subscriptions": ["{SUBSCRIPTION_TYPE}"],
"tenants": ["{RAC_TENANT_ID}"],
"productName": "{PRODUCT_NAME}",
"requeueCountMax": {REQUEUE_COUNT}
}' |
Apêndice D - Enviando para o iPaaS sem Audiência
...
As variáveis a serem substituídas são:
- TOKEN_RAC: Token RAC obtido conforme
Apêndice B
; - TYPE: Tipo da mensagem, equivalente a subscrição (algo que identifique a natureza da mensagem), este campo deve equivaler ao informado no campo "Tipo" filtrado pelo iPaaS caso seja informado;
- É também possível informar o conteúdo da mensagem dentro do json do campo "data".
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.dev.totvs.app/api/v1/link/send/{TYPE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.staging.totvs.app/api/v1/link/send/{TYPE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.totvs.app/api/v1/link/send/{TYPE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}' |
Apêndice E - Enviando para o iPaaS com Audiência
...
As variáveis a serem substituídas são:
- TOKEN_RAC: Token RAC obtido conforme
Apêndice B
; - TYPE: Tipo da mensagem, equivalente a subscrição (algo que identifique a natureza da mensagem), este campo deve equivaler ao informado no campo "Tipo" filtrado pelo iPaaS caso seja informado;
- AUDIENCE: Audiência da mensagem, este campo deve equivaler ao informado no campo "Audiência" filtrado pelo iPaaS caso seja informado;
- É também possível informar o conteúdo da mensagem dentro do json do campo "data".
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.dev.totvs.app/api/v1/link/send/{TYPE}/{AUDIENCE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.staging.totvs.app/api/v1/link/send/{TYPE}/{AUDIENCE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.totvs.app/api/v1/link/send/{TYPE}/{AUDIENCE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}' |
Apêndice G - Buscar Conteúdo da Primeira Mensagem da Fila
...
As variáveis a serem substituídas são:
- TOKEN_RAC: Token RAC obtido conforme
Apêndice B
;
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.dev.totvs.app/api/v1/link/get' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.staging.totvs.app/api/v1/link/get' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' |
Bloco de código | ||
---|---|---|
| ||
curl --location 'https://api-smartlink.totvs.app/api/v1/link/get' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' |
Apêndice H - ACK na Primeira Mensagem da Fila
...
As variáveis a serem substituídas são:
- TOKEN_RAC: Token RAC obtido conforme
Apêndice B
;
Bloco de código | ||
---|---|---|
| ||
curl --location --request POST 'https://api-smartlink.dev.totvs.app/api/v1/link/ack' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' |
Bloco de código | ||
---|---|---|
| ||
curl --location --request POST 'https://api-smartlink.staging.totvs.app/api/v1/link/ack' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' |
Bloco de código | ||
---|---|---|
| ||
curl --location --request POST 'https://api-smartlink.totvs.app/api/v1/link/ack' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' |
Editando o componente
...
Para diagramas extensos ou que possuem muitas ligações entre componente e aplicativos, existe a possibilidade de editar o componente em casos onde é necessário alterar o componente de início escolhido sem precisar romper as ligações já estabelecidas.
01. Passe o mouse sobre o componente de início SamrtLink Hook;
02. Clique no ícone para alterar o componente;
03. A lista com os componentes de início será apresentada, escolha o componente que deseja e clique em Salvar;
04. Uma mensagem de confirmação será apresentada, clique em Prosseguir para salvar as alterações.
Informações | ||
---|---|---|
| ||
Ao trocar um componente de início, as configurações aplicadas também precisam ser atualizadas, pois cada componente de início tem um tipo de configuração. |