Autenticação

Você precisará autenticar suas solicitações para enviar qualquer evento a um dos endpoints na API do AgnosticData. Neste guia, vamos mostrar como funciona a autenticação. O AgnosticData oferece duas formas de autenticar suas solicitações de API: autenticação básica por duplo token e access key file.

Autenticação por duplo token

Todo projeto tem uma API_KEY que é enviada via autenticação Bearer authentication para recuperar o token. O token recebido tem expiração de 60 minutos, após esse intervalo deverá ser solicitado outro token.

Exemplo PRIMEIRA REQUISIÇÃO com Bearer authentication

curl -X GET \
  -H "Authorization: Bearer {API_KEY}" \
  https://region-PROJECT_NAME.cloudfunctions.net/adai_get_toke

Você pode utilizar a biblioteca do seu endpoint de fluxo, neste caso, estamos utilizando Google Pub/Sub, logo um SDK do pubsub pode ser utilizado para Flutter, etc.

Cenário via Website

Recomendamos o uso da nossa biblioteca (sdk) que detém eventos automáticos de visualização de conteúdo, clique, visualização de seção, dentre outros. Após receber o token de 60 minutos, pode-se enviar o evento para o endpoint REST de fluxo, conforme o exemplo abaixo.

Exemplo SEGUNDA REQUISIÇÃO, post no Pub/Sub via REST

const apiUrl = `https://pubsub.googleapis.com/v1/projects/${AG_DB_CLOUD_PROJECT_ID}/topics/${AG_TOPIC_PRJID}:publish`
const response = await fetch(apiUrl, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${accessToken.token}`, // token recebido no passo anterior
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    messages: [
      {
        data: encodedMessage,
      },
    ],
  }),
})

Access key file

Para utilizar via access key file é necessário exportar o arquivo chave no IAM e de posse deste arquivo executar os procedimentos conforme a biblioteca.

Exemplo REQUISIÇÃO, post no Pub/Sub via SDK

// veja mais detalhes em https://cloud.google.com/pubsub/docs/publisher?hl=pt-br

import { PubSub } from '@google-cloud/pubsub'
const CREDENTIALS = {
  client_email: process.env.GOOGLE_PUBSUB_PUBLISHER_EMAIL,
  private_key: process.env.GOOGLE_PUBSUB_PUBLISHER_PRIVATE_KEY,
}

// Create  a client
const optionsCRED = {
  projectId: 'lyc-tom',
  credentials: CREDENTIALS,
}

// const pubSubClient = new PubSub({ projectId: "lyc-tom" });
const pubSubClient = new PubSub(optionsCRED)

Uma vez que seja possível enviar mensagens para o endpoint de fluxo de dados, basta criar o payload de conforme pré-definido e submeter para o endpoint de fluxo.