Cómo importar datos de conteo de forma automatizada

Aprenda a autenticarse en la API de importación y luego aprenda a enviar los datos de conteo.

El end point de Importación

El API Importación de tbRetail tiene 2 end points, uno para realizar las llamadas de test y otro para realizar las llamadas de producción:

Autenticarse

Para comunicarse con el servidor, necesitará un token OAuth con los alcances (scopes) correctos.

  1. Obtener un token de usuario: Este token de acceso estará asociado al usuario y permitirá obtener los datos que el usuario tiene acceso en la aplicación.

  2. Obtención del token de acceso temporal: Una vez obtenido en el paso 1 un token de usuario, se podrá realizar una petición al servidor para obtener un token temporal de acceso. Este token temporal tiene una validez de 24 horas. Transcurrido dicho periodo deberá solicitarse un nuevo token temporal para poder solicitar los datos. La url de autentificación en la fase de pruebas:

Los valores de las variables para realizar la petición de datos son las siguientes:

Variables

Valor

Variables

Valor

client_id para test

14fuos4vd8u14utepgl46fhjob

client_id para producción

63h4jubc7qvrg9f65c36vjp3bq

redirect_uri en test

https://stage.tbretail.com/mytoken/index.html

redirect_uri en producción

https://login.tbretail.com/mytoken/index.html

refresh_token

Token obtenido en el paso 1

 Código de ejemplo en python

 

import requests import json import datetime refresh_token = "<inserte token obtenido en paso 1>" client_id = '<inserte client id>' redirect_uri = '<inserte redirect uri' # realizar la peticion de autenticacion para obtener el token temporal de acceso token_url = 'https://auth.tbretail.com/oauth2/token' headers = {'Content-Type': 'application/x-www-form-urlencoded'} data = {'grant_type': 'refresh_token', 'client_id': client_id, 'redirect_uri': redirect_uri, 'refresh_token': refresh_token} token_response = requests.post(token_url, data=data, verify=False, allow_redirects=False, headers=headers) access_token = token_response.json()['access_token']

Esta petición devolverá el access_token que podrá ser usado para realizar las peticiones al servidor.

 Petición para enviar el fichero csv al servidor

La petición se debe realizar haciendo un POST al end point de pruebas o de producción.

Los campos que debe contener el fichero separados por coma “,” son los siguientes:

Campo

Descripción

Campo

Descripción

Sensor

Deberá contener la MacAdress del sensor al que se le quieren asignar los datos. No es Case Sensitive.

Zona

Zona del sensor al que se le quieren asignar los datos. Debe coincidir con una de las zonas contenidas en el sensor al que se hace referencia.

Metric

Nombre de la métrica que contienen los datos. Los nombres válidos son: 'enters','exits','passerbyenters','passerbyexits','groupenters','groupexits'

Count

Número entero con el conteo.

Date

Fecha a la que hace referencia el conteo en formato AAA-MM-DD HH:MM:SS

El fichero con la información anterior debe contener el siguiente formato:

sensor,zone,metric,count,date AA:BB:CC:DD:EE:FF,ZONA A,enters,2,2021-01-01 10:00:00 AA:BB:CC:DD:EE:FF,ZONA A,exits,5,2021-01-01 10:15:00

Seguidamente les presentamos un código de Ejemplo Python para realizar la importación:

# obtenido el token temporal (access_token) podremos realizar llamadas al api api_url = 'https://pipeline.tbretail.com/data/import/count' headers = { 'Authorization': access_token } # abrir el fichero datos y leerlo data = open('datos.csv','rb').read().decode('utf-8') response = requests.post(api_url, data=data.encode('utf-8'), headers=headers) print (response)

 

Artículos Relacionados