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.