Histórico da Página
...
07. Na tela do aplicativo na GCP, clique em CRIAR CREDENCIAIS ou em Credenciais no menu esquerdo
08.
Configuração
Na tela de credenciais, clicar em "+ CRIAR CREDENCIAIS" selecionando a opção "ID do cliente OAuth"
09. Clicar em "CONFIGURAR TELA DE CONSENTIMENTO"
10. Selecione 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:
...
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
...
11. Preencha os campos conforme dados da sua organização:
12. No passo de escopos, adicione todos os disponíveis do google sheets através do botão "ADICIONAR OU REMOVER ESCOPOS"
13. Navegue até a última tela e clique em "VOLTAR PARA O PAINEL"
14. Liberar o consentimento para o status em produção ou deixar em teste (Caso deixe em teste, adicione o seu e-mail como um usuário válido abaixo):
15. Agora com o consentimento criado, repetir o passo 08
16. Configurar o cliente conforme dados abaixo e clicar em "CRIAR":
17. Uma tela com os dados para autenticação será apresentada. Salve o arquivo e os dados em tela pois serão necessários para configuração no TOTVS iPaaS:
18. Com os dados do ID do cliente e Chave secreta em mãos, será necessário montar a url abaixo:
O resultado deverá ser semelhante a URL abaixo:
https://accounts.google.com/o/oauth2/v2/auth?scope=https%3A//www.googleapis.com/auth/drive.metadata.readonly&access_type=offline&include_granted_scopes=true&response_type=code&state=state_parameter_passthrough_value&
redirect_uri=https%3A//ipaas.totvs.app&
client_id=7137-08ulb4r515dsdkjcd05jnfi6sq3dpn93.apps.googleusercontent.com
Informações | ||
---|---|---|
| ||
redirect_uri: URL cadastrada no aplicativo no passo 16 client_id: Código gerado no passo 17 |
19. Cole a URL gerada no navegador e escolha a sua conta para autorizar e geração do token (Esteja logado no iPaaS no navegador em que você vai acessar o link):
20. Ao clicar em continuar, você será redirecionado para o TOTVS iPaaS. Salve a URL que foi gerada e busque o valor do campo "code" (Lembrando que o valor vai até o próximo caracter '&')
Tomar cuidado com o 4%2F no começo do código, pois o navegador pode mudar, então o correto é 4/, ou seja, deve-se substituir o 4%2F por 4/:
code=4/0AeaYSHCWg9SZvgBJC5VYsxvFMO75X8BOaARWHQ-YhAPwbMnbYRF6qMX0HLA0ZJKxjcUjUQ
21. No TOTVS iPaaS, na tela do passo 4, informe todos os campos e clique em "Concluir":
- Auth URL: https://accounts.google.com/o/oauth2/auth
- Access Token URL: https://accounts.google.com/o/oauth2/token
- Code: Código de Autenticação
- Redirect URI: URL de Redirecionamento
- Refresh Token URL: https://accounts.google.com/o/oauth2/token
- Client Id: ID do Cliente
- Client Secret: Chave Secreta
- Scope: https://www.googleapis.com/auth/spreadsheets
- Access Type: offline
- Client Authentication: Client Credentials in Body
22. Para validar se tudo está funcionando conforme o previsto, você pode testar a conta:
- 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
...
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' |
...
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}
}' |
...
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 '{}' |
...
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}' |
...
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.
...
title | Informação |
---|
...