In this article, we’ll look how to get analytics data with AppCenter open api.
If you want to integrate AppCenter utilities into your back-end system, the appcenter open api layer will help you.
Firstly you need to get APIToken for open api authorization. You can learn by following the steps on the site
It makes a lot of sense to make a website where we can track app analytics and app error details. In this sample, we’ll get all analytic data very simply by making an API call.
I want to use pure html and js btw 🙂 “it smells oldschool”
I want to see,
- Count of active events in the time range
- Device models in the time range
- Count of devices for an event by interval in the time range
Firstly, we need to create an XMLHttpRequest function
function Request(callback, url){ var ul = document.getElementById("myul"); ul.innerHTML = ""; var req = new XMLHttpRequest(); req.onreadystatechange = function() { if (req.readyState == 4 && req.status == 200) { callback(req); } } req.open( "GET", url, true ); req.setRequestHeader("X-API-Token", "Your API Token"); req.send( null ); }
and we need to create 3 js functions. GetEvents, GetModels and GetDeviceCountByEvent
function GetEvents(req){ var json = JSON.parse(req.responseText); var ul = document.getElementById("myul"); for (let index = 0; index < json.events.length; index++) { var li = document.createElement("li"); li.appendChild(document.createTextNode(json.events[index].name)); ul.appendChild(li); } }
function GetModels(req){ var json = JSON.parse(req.responseText); var ul = document.getElementById("myul"); for (let index = 0; index < json.models.length; index++) { var li = document.createElement("li"); li.appendChild(document.createTextNode(json.models[index].model_name + " : " + json.models[index].count)); ul.appendChild(li); } }
function GetDeviceCountByEvent(req){ var json = JSON.parse(req.responseText); var ul = document.getElementById("myul"); for (let index = 0; index < json.devices_count.length; index++) { var li = document.createElement("li"); li.appendChild(document.createTextNode(json.devices_count[index].datetime + " : " + json.devices_count[index].count)); ul.appendChild(li); } }
and a little bit html code
<div> <input type="button" value="Get Events" onclick="Request(GetEvents, eventsurl)" /> <input type="button" value="Get Models" onclick="Request(GetModels, modelsurl)" /> <input type="button" value="Get Device Count By Event" onclick="Request(GetDeviceCountByEvent, devicecounturl)" /> <div> <ul id="myul"> </ul> </div> </div>
Let’s try!
Get Device Count By Event
Get Models
Get Events
Next app center articles will be more complicated. I think distribute, test or export
Download full code
Post A Reply