User Tools

Site Tools


api:iptv:app:gettabletprofile

API : IPTV : Tablet profiles : Get

Introduction

This will get a single tablet profile.

A tablet profile is a configuration for a tablet's launcher, which can be shared by many tablets.

Request

URL https://api.telecomx.dk/iptv/app/tabletprofile
Method GET
Access level VIEWER, MANAGER or OWNER if customer has feature FLEXCARE
ADMIN
ADMIN
Query token Android tablet token, used for authentication.

If this request is made as a POST request, then a body can be submitted with information to Telecom X.

Body
lanMac String MAC of LAN network card.
wifiMac String MAC of Wi-Fi network card.
pushToken String Token generated by the launcher app. Used for sending commands to the tablet.
token String Android tablet token, used for authentication.
appVersion String Version of the launcher app

Query examples

https://api.telecomx.dk/iptv/app/tabletprofile?token=2565ADSCjf64sd

Response

JSON object
_id ObjectId Unique ID for the device
name String Name of the tablet profile
customer ObjectId Unique ID of customer that owns the profile
rowSpacing Integer Vertical distance between apps in pixels
horizontalTopSpacing Integer Distance between logo in the top left and clock in the top right (Only for here historical reasons, is put on pages individually)
topRowSpacing Integer Distance from apps to the top border of the screen (Only for here historical reasons, is put on pages individually)
powerButton Boolean True if the power button is visible, false if not
externalPowerOff Boolean True if the power button calls an external app instead of powering off (is used as a sort of standby)
deviceType String (enum) Can either be 'ANDROID_TABLET' or 'ANDROID_BOX'
mdm String (enum) Which MDM (mobile device management system) is used with this tablet profile. Can be 'FLEXCARE', 'MOBILE_IRON', 'SCALEFUSION', or 'AIRWATCH'
mdmConfig Object JSON object that contains a configuration that the tablet runs. It's a “free-form” JSON object, meaning its properties can vary.
battery Boolean True if the tablet profile is meant for devices that are battery-driven
mqttBrokerId ObjectId Unique id of mqtt broker, used for mqtt buttons
mqttBroker Object Broker settings for mqtt buttons
_id ObjectId Unique identifier of mqtt broker
reseller ObjectId Unique identifier of mqtt broker's reseller
name String Name of mqtt broker
host String Host of mqtt broker
port Number Port used to connect to broker
topicPrefix String Is put before topic set on individual button
protocol Enum Protocol to connect to broker with.
“TCP”, “SSL”, “TLS”
username String Username that device connects to broker with
password String Password that device connects to broker with
webViewWifiButton Object Settings for the wifi button placed in web views, on tablets that don't use PoE
webViewWifiButton.active Boolean True if wifi button is visible
webViewWifiButton.topSpacing Integer Distance from top border in pixels
webViewWifiButton.leftSpacing Integer Distance from left border in pixels
webViewWifiButton.rightSpacing Integer Distance from right border in pixels
hotspot Object Hotspot settings
hotspot.active Boolean True if hotspot is enabled
hotspot.url String URL of hotspot page to redirect to
hotspot.checkUrl String URL to check if the tablet has wifi
logo Object Logo settings
logo.enabled Boolean If true, logo is shown in the top left corner
logo.width Number Width of logo in pixels
logo.height Number Height of logo in pixels
logo.image ObjectId Object ID of image to use as logo
logo.useDefault Boolean If true, will use “small logo” from IPTV settings as logo
logo.margin Object Margins for logo
logo.margin.top Number Margin to top of screen
logo.margin.left Number Margin to left of screen
logo.margin.bottom Number Margin to bottom of screen
logo.margin.right Number Margin to right of screen
version Object Determines where the properties of the text in the launcher app, that states the current version of the app.
version.x Number X coordinate
version.y Number Y coordinate
version.color Number Font color
volumeBoost Object Volume boost for tablet
volumeBoost.enabled Boolean If true, then volume boost is enabled
volumeBoost.level Number Amount of volume added to the tablet's volume (max is 3000)
lock Object Determines lock functionality of the tablet
lock.activation String (ENUM) Possible values are OFF, ALWAYS, and MANUAL. If off, then the device does not lock. If always, the tablet locks after a specified delay. If manual, then the user must lock it manually.
lock.x Number X coordinate
lock.y Number Y coordinate
apps Array List of apps that this tablet profile. This is used to determine which version and which apps the users of this tablet profile has, and which apps will be installed on the tablet
apps[]._id Id Package ID of the app, e.g 'com.skype.android'.
apps[].version String Version number of the app. If null, it will use the latest version.
apps[].locked Boolean The property is set to true if a user manually adds an app to a tablet profile. It is false in case that the app is added dynamically, because an app is used on a button. Apps with locked set to false will be removed from the list, in case the app is no longer used in the tablet profile.
apps[].name String Name of the app. ONLY if the query parameter full = true
apps[].apks Array List of the available version and links to their APKs. ONLY if the query parameter full = true
apps[].apks[].file Id Id of the APK
apps[].apks[].url String URL to download the APK
apps[].apks[].version String Version of this APK
apps[].apks[].default Boolean If this version is the default version
pages Array List of pages that the profile has.
Page Object Contains page specific properties, and a list of buttons for the given page
page.background String URL to a background image
page.useDefaultBackground Boolean If true, then the page uses the FlexCare background given in IPTV settings
page.clockColor String Hex-color for the clock
page.leftSpacing Integer Distance from left border of the screen
page.rowSpacing Integer Vertical distance between apps in pixels
page.topRowSpacing Integer Distance from apps to the top border of the screen
power Object Contains properties concerning the power button on each page.
power.x Number X coordinate
power.y Number Y coordinate
power.enabled Boolean If true, then the power button is visible. If false, the power button is invisible
power.image Id Id of the fileId on Telecom X' image server.
buttons Array Array of the buttons for this page
Button Object The buttons that make up the layout of the tablet
row Integer Row that the button is positioned in
position Integer Position that the button has in its row
x Number X coordinate
y Number Y coordinate
label String Button label, shown below icon
labelColor String Hex-formatted text color for the label
enabled Boolean True if button is active and visible
type Enum Determines the functionality of the button. “PAGE” jumps to another page with a page number, “NAMED_PAGE goes to a page with a name (TV, RADIO, etc), “APP” opens an app installed on the device, and “WEBVIEW” opens a web view with a given url. “NAMED_PAGE” “PAGE”, “APP”, “VIDEO”, “MQTT” or “WEBVIEW”
value String The value of the button, used together with type. If the type is a page, it will be a page number. If the type is an app, it will be an app name (package name). If the type is webview or video, it will be an URL.
clearAppData Boolean True if the app data (cache, logins, etc) will be deleted when the app is closed
includeToken Boolean True if launcher sends token when user starts the app (Only works if button type is APP), default false
includeDeviceId Boolean True if launcher sends device id when user starts the app (Only works if button type is APP), default false
includeTechnicalRoomNumber Boolean True if launcher sends technical room number when user starts the app (Only works if button type is APP), default false
useStats  Boolean  True if interaktion with button should be logged to FlexCMS
mqtt Object Properties for the button's mqtt settings
mqtt.function Enum Defines what type of mqtt button it is.
“concierge”, “slider”, “controller”, “toggle”, “info”
mqtt.cardBackgroundColor String Background of the whole card
mqtt.cardCornerRadius String Corner radius of card
mqtt.infoTextFontColor String Color of info text
mqtt.infoTextFontSize Number Font size of info text
mqtt.stateIconOn String Url to icon
mqtt.stateIconOff String Url to icon
mqtt.stateIconWidth Number Width of “stateIcon”
mqtt.stateIconHeight Number Height of “stateIcon”
mqtt.valuePrefix String Value to show before value from mqtt broker
mqtt.valuePostfix string Value to show after value from mqtt broker
mqtt.incrementIcon String Url to icon
mqtt.incrementIconWidth Number Width of “incrementIcon”
mqtt.decrementIcon String Url to icon
mqtt.decrementIconWidth Number Width of “decrementIcon”
mqtt.sliderIcon String Url to icon
mqtt.sliderIconWidth Number Width of given slider icon
mqtt.sliderIconHeight Number Height of given slider icon
mqtt.sliderColor String Color of selected area of slider
mqtt.sliderWidth Number Width of slider
mqtt.sliderCornerRadius Number Border radius of slider
mqtt.sliderBackgroundColor String Background color of slider
mqtt.sliderAngle Enum Angle of slider.
0, 90, -90, 180
mqtt.minValue Number Minimum value of slider
mqtt.maxValue Number Max value of slider
mqtt.steps Number Step value of slider
mqtt.conciergeImageWidth Number Width of “conciergeImage”
mqtt.conciergeImageHeight Number Height of “conciergeImage”
mqtt.subscribeValueType Enum Whether to use a simple/raw value to save on mqtt broker or to save a “json” object
“raw”, “json”
mqtt.subscribeTemplate String Json template if subscribeValueType is “json”
mqtt.subscribeTopic String Path to where device is located on mqtt broker
mqtt.subscribeDevice String Device name on mqtt broker
mqtt.jsonSubsribeOnValue String Value that is set when type is “toggle” and value is on
mqtt.jsonSubscribeOffValue String Value that is set when type is “toggle” and value is off
mqtt.rawSubscribeOnValue String Value that is set when function is “toggle” and subscribeValueType “raw” and value is “on”
mqtt.rawSubscribeOffValue String Value that is set when function is “toggle” and subscribeValueType “raw” and value is “off”
mqtt.publishValueType Enum Whether to use a simple/raw value to save on mqtt broker or to save a “json” object
“raw”, “json”
mqtt.publishTemplate String Json template if publishValueType is “json”
mqtt.publishTopic String Path to where device is located on mqtt broker
mqtt.publishDevice String Device name on mqtt broker
mqtt.jsonPublishOnValue String Value that is set when type is “toggle” and value is on
mqtt.jsonPublishOffValue String Value that is set when type is “toggle” and value is off
mqtt.rawPublishOnValue String Value that is set when function is “toggle” and publishValueType “raw” and value is “on”
mqtt.rawPublishOffValue String Value that is set when function is “toggle” and publishValueType “raw” and value is “off”
Icon Object Properties for the button/app icon
icon.url String URL for the image
icon.width Integer Width of the image
icon.height Integer Width of the image
icon.hoverIcon String [optional] Alternate icon if user is hovering (using keyboard or fly mouse)

Example

{
  _id: '1234567890ABCDEFGHIJKLMN',
  customer '2345678901ABCDEFGHIJKLMN',
  rowSpacing: 60,
  horizontalTopSpacing: 30,
  topRowSpacing: 20,
  powerButton: false,
  externalPowerOff: false,
  battery: false,
  mdm: 'AIRWATCH',
  mdmConfig: { ... },
  deviceType: 'TABLET',
  lock: {
    activation: 'MANUAL',
    x: 50,
    y: 50
  },
  version: {
    x: 5,
    y: 5,
    color: '#ffffff'
  }
  webViewWifiButton: {
    active: true,
    topSpacing: 20,
    leftSpacing: 20,
    rightSpacing: 35
  },
  hotspot: {
    active: true,
    url: 'https://hotspot.hospitalnorth.dk',
    checkUrl: 'https://google.dk'
  },
  apps: [
    {
      _id: 'com.skype.android',
      version: null
    },
    {
      _id: 'com.google.android.apps.translate',
      version: '1.2'
    }
  ],
  pages: [
    {
      background: '#FFAABB',
      clockColor: '#000000',
      leftSpacing: 20,
      rowSpacing: 20,
      topRowSpacing: 20,
      power: {
        x: 10,
        y: 30,
        enabled: true,
        image: '1234567890ABCDEFGHIJKLMN'
      },
      buttons: [
        {
          row: 0,
          position: 0,
          label: 'TV',
          labelColor: '#FFFFFF',
          type: 'NAMED_PAGE',
          value: 'tv',
          clearAppData: false,
          icon: {
            url: 'https://placeholder.com/img/tv.png',
            width: 20,
            height: 30,
            hoverIcon: 'https://placeholder.com/img/tv_hover.png'
          }
        },
        {
          row: 0,
          position: 1,
          label: 'RADIO',
          labelColor: '#FFFFFF',
          type: 'NAMED_PAGE',
          value: 'radio',
          clearAppData: false,
          icon: {
            url: 'https://placeholder.com/img/radio.png',
            width: 20,
            height: 30,
            hoverIcon: 'https://placeholder.com/img/radio_hover.png'
          }
        }
      ]
    },
    {
      background: '#1ECCBB',
      clockColor: '#000000',
      leftSpacing: 20,
      rowSpacing: 20,
      topRowSpacing: 20,
      power: {
        x: 10,
        y: 30,
        enabled: true,
        image: '1234567890ABCDEFGHIJKLMN'
      },
      buttons: [
        {
          row: 0,
          position: 0,
          label: 'Skype',
          labelColor: '#FFFFFF',
          type: 'APP',
          value: 'com.skype',
          clearAppData: false,
          includeToken: false,
          includeDeviceId: false,
          includeTechnicalRoomNumber: false,
          icon: {
            url: 'https://placeholder.com/img/skype.png',
            width: 20,
            height: 30,
            hoverIcon: 'https://placeholder.com/img/skype_hover.png'
          }
        },
        {
          row: 0,
          position: 1,
          label: 'Chess',
          labelColor: '#FFFFFF',
          type: 'app',
          value: 'com.chess_fun',
          clearAppData: false,
          includeToken: false,
          includeDeviceId: false,
          includeTechnicalRoomNumber: false,
          icon: {
            url: 'https://placeholder.com/img/chess.png',
            width: 20,
            height: 30,
            hoverIcon: 'https://placeholder.com/img/chess_hover.png'
          }
        }
      ]
    }
  ]
}

Errors

Error code Message Description
403 access_denied Insufficient access level
403 customer Customer does not have required feature
404 id Tablet profile not found
500 internal_error <Unspecified>
api/iptv/app/gettabletprofile.txt · Last modified: 2025/03/04 08:17 by Gudni Sigurdsson

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki