Для того, чтобы в виджетах, использующих Python-скрипты, учитывались права доступа пользователей:
- Должны быть настроены права доступа в панели администратора Viqube
- В Dashboard Designer код виджета, использующий в качестве источника данных Python-скрипт, должен содержать ACCESS_TOKEN во всех запросах на Viqube
Запрос на Viqube с использованием ACCESS_TOKEN должен выглядеть следующим образом:
myheaders = {'X-API-VERSION': '<версия API>','authorization': 'Bearer ' + ACCESS_TOKEN} query = {<Json-запрос на Viqube>} #Запросы сохраняются на сервере с установленным ViQube в директории хранящей лог-файлы /docker-volume/viqube/apiLog/ resp = requests.post('http://<адрес сервера, на котором установлен ViQube>/viqube/metadata/query',headers=myheaders,json=query) # запрос на ViQube
Пример. Запрос на Viqube с использованием ACCESS_TOKEN и дэмо-данных
import requests myheaders = {'X-API-VERSION':'3.4','authorization':'Bearer '+ACCESS_TOKEN} query = {"database":"Magazin","groups":[{"mgid":"Fakticheskie_prodazhi_v_rublyah","attributes":[{"dlid":"Data_prodazhi","attrid":"YEAR","axis":"ROW"},{"dlid":"Data_prodazhi","attrid":"MONTH_NAME","axis":"ROW"},{"dlid":"Gorod_otpravki","attrid":"Gorod","axis":"COLUMN"}],"measures":[{"mid":"Srednyaya_tsena","alias":"0-0"}],"filters":[],"time":[{"from":"2016-10-13","to":"2019-01-14","dlid":"Data_prodazhi"}],"showempty":False}],"limit":{"rows":30,"columns":5}} resp=requests.post('http://192.168.44.217/viqube/metadata/query',headers=myheaders,json=query) response = resp.json()
Пример. Объекты на основе одного из доступных классов
#-Гистограмма- my_chart = DataFrame() my_chart.cols = response['columns'] my_chart.rows = response['rows'] # Возвращаемые значения response['values'] нужно транспонировать my_chart.values = [list(x) for x in zip(*response['values'])] #-filter1- myFilter = Filter() myFilter.rows = response['rows'] #-filter2- myFilter2 = Filter() myFilter2.rows = response['columns']
Для выполнения Python скриптов, которые используют данные из ViQube, на с установленным Python сервером, должен быть установлен pyton версии 3.6+ и библиотека 'requests'