REST Push API

From A-SMIL.org
Revision as of 08:32, 9 September 2014 by SMIL T.A. (Talk | contribs)

Jump to: navigation, search

Applies to: IAdea XMP-2200, XMP-2300 media appliances

You may push SMIL scripts and media files into a player using a REST API as documented below.

Naming

The REST API can be accessed via prefix

http://(device_ip):8080/v2/

appended by API call. For example, for API

POST oauth2/token

the actual HTTP request should be sent to (device_ip) at port 8080, with content similar to:

POST /v2/oauth2/token HTTP/1.1
Host: (device_ip)
Content-Type: application/x-www-form-urlencoded;charset=UTF-8

grant_type=password&username=...


Authentication

Before a remote client can access the player, it must authenticate itself by providing the access password set in the player.

POST oauth2/token

Request an access token for API calls.

Input (Multi-part form)

Parameter Function
grant_type Must be the string "password"
username User name requesting access, admin by default
password Password

Output (JSON)

Parameter Function
access_token Authorization token for further API access
token_type Always "Bearer"
expires_in Number of seconds before access_token expires. If this field is returned as an empty string, then the access token does not expire.


Media Transfer

POST files/new

Create a file under http://(device_ip):8080/user-data download path

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
downloadPath Path of file, must start with prefix /user-data/
data (Optional) File encoded in multipart/form-data
fileSize (Required except when data is provided) Size of file; if provided file can be uploaded in separate chunks
etag (Optional) User-supplied unique string for version identification; default empty string
mimeType (Optional) MIME type of the file; default empty string
modifiedDate (Optional) ISO8601-encoded date time string indicating modified date time; default empty string

Output (JSON)

FileResource structure:

Parameter Function
id String for identifying the file in subsequent operations
downloadPath Path of file to append after http://(device_ip):8080
fileSize Size of file
etag Unique string for version identification
mimeType MIME type of the file
modifiedDate ISO8601-encoded date time string indicating modified date time; default empty string
transferredSize Size uploaded into the player
completed Boolean (true or false) indicating whether file upload has completed

GET files/(id)

Get file information

Input

None

Output (JSON)

FileResource structure

POST files/(id)

Modify a file, may be used to complete an interrupted file transfer operation

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
seek (Optional) Offset from beginning of file to replace data. Default 0
data (Optional) File encoded in multipart/form-data
downloadPath Path of file, must start with prefix /user-data/
etag (Optional) User-supplied unique string for version identification; default empty string
mimeType (Optional) MIME type of the file; default empty string
modifiedDate (Optional) ISO8601-encoded date time string indicating modified date time; default empty string

Output (JSON)

FileResource structure

POST files/find

List files on the system

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
maxResults (Optional) Max number of file records to return
pageToken (Optional) Continuation record
query (Optional) Reserved

Output (JSON)

Parameter Function
nextPageToken null of an identifier for report continuation
items Array of FileResource structures

POST files/delete

Delete a file

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
id ID string of file returned by files/new

Output (JSON)

null

GET (downloadPath)

Retrieve a file


Playback

POST app/exec

Play content once

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
uri Location of content. May be http://localhost:8080/user-data/...
packageName Android package to launch
className Android class name
action Android action
type (Optional) Android intent type
extras (Optional) Array of Android intent extra parameters

Output (JSON)

Parameter Function
uri Location of content. May be http://localhost:8080/user-data/...
packageName (Optional) Android package to launch
className (Optional) Android class name
action (Optional) Android action
type (Optional) Android intent type

POST app/start

Set default content to play each time player boots up

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
uri Location of content. May be http://localhost:8080/user-data/...
packageName (Optional) Android package to launch
className (Optional) Android class name
action (Optional) Android action
type (Optional) Android intent type
extras (Optional) Array of Android intent extra parameters

Output (JSON)

Parameter Function
uri Location of content. May be http://localhost:8080/user-data/...
packageName (Optional) Android package to launch
className (Optional) Android class name
action (Optional) Android action
type (Optional) Android intent type

POST app/switch

Switch to play default content

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
mode Set to "start" to play default content
ifModifiedSince (Optional) Switch to content if it is modified after this ISO8601 date/time

Output (JSON)

Parameter Function
uri Location of content. May be http://localhost:8080/user-data/...
packageName (Optional) Android package to launch
className (Optional) Android class name
action (Optional) Android action
type (Optional) Android intent type


Management

POST hardware/display

Turn On/Off the display

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
id the display id ,always set to "0" (refer to number zero)
power Set to "on" to turn on display ; Set to "standby" to turn off display

Output (JSON)

Parameter Function
id the display id
power return current display setting

Change display input source to me

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
id the display id ,always set to "0" (refer to number zero)
input Set to "CEC:me" to switch input source to me ( the player's HDMI input source )

Output (JSON)

Parameter Function
id the display id
input return the current input source being requested to switch to

POST task/importConfigurtion

Import new configuration to player

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
userPref new configuration object ex. {"userPref": [ {"name": "string", "value": "string" },{...} ] }
 parameter reference - Device_configuration

Output (JSON)

Parameter Function
commitId return the ID to be committed when commitConfiguration
userPref return newly imported configuration
restartRequired true/false , if restart is required for changes to take effect, restartRequired is true

POST task/commitConfigurtion

Commit new configuration to player

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token
commitId the ID returned when importConfiguration

Output (JSON)

Parameter Function
commitId return the ID just committed
restartRequired true/false , if restart is required for changes to take effect, restartRequired is true

POST task/reboot

reboot player immediately

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token

Output (JSON)

Parameter Function
null null

POST app/settings/com.iadea.console/new

Add time server configuration

Input (JSON)

Parameter Function
access_token Access token returned from oauth2/token
settings new setting object ex. {"settings": [ {"name": "autoTimeServer", "default": "ntp://host{:port}" } ] }
 "name" : must be autoTimeServer
 "default" : default | ntp://host{:port} 
             set to default player synchronize time with pool.ntp.org, otherwise synchronize with specified ntp host

Output (JSON)

Parameter Function
value return the default value configured above
name return name

POST app/settings/com.iadea.console/update

Update time server configuration

Input (JSON)

Parameter Function
access_token Access token returned from oauth2/token
settings new setting object ex. {"settings": [ {"name": "autoTimeServer", "value": "ntp://host{:port}" } ] }
 "name" : must be autoTimeServer
 "value" : default | ntp://host{:port} 
           set to default player synchronize time with pool.ntp.org, otherwise synchronize with specified ntp host

Output (JSON)

Parameter Function
value return the default value configured above
name return name


System Information

GET system/firmwareInfo

Get firmware version information

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token

Output (JSON)

Parameter Function
firmware version Device firmware version information
family Product model family , such as "AML8726M3-ADAPI"

POST /v2/android.net.wifi.WifiManager/isWifiEnabled

Get Wi-Fi enable/disable information

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token

Output true/false

POST /v2/android.net.wifi.WifiManager/getConnectionInfo

Get Wi-Fi information

Input (JSON or multi-part form)

Parameter Function
access_token Access token returned from oauth2/token

Output (JSON)

Parameter Function
BSSID BSSID
detailedState Detailed State
hiddenSSID Whether SSID is hidden
ipAddress IP Address
linkSpeed Link Speed
macAddress MAC Address
networkId Network ID
rssi RSSI info
SSID SSID
supplicantState Supplicant State