messageGet: Get SMS content
Function Description:
Get the content of mobile phone text messages, you can get the content of multiple text messages, and you can get up to 100 text messages.
Corresponding JS API:
messageGet(postion)
messageGet(begin,end)
Whether to support multiple devices:
No
Resource Information:
Method | GET |
---|---|
URL | .../devices/:device/messages?position=:position&count=:count |
Requires authentication? | Yes |
Method Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
device | String | Yes | ID value of the device |
position | Int | Yes | Get the SMS content of the specified location or get multiple SMS content from the specified location. The minimum value is 1. |
count | Int | No | Get the specified number of SMS content starting from the specified location. The minimum value is 1. |
Response Parameters:
A JSON string representing an array of objects with the following fields:
Field | Type | Description |
---|---|---|
status | Boolean | Return true for success and null for failure |
value | JSONArray/String | JASONArray, if the value of status is true, return the content of the text message. The text message has the following fields: - address: Telephone number - body: The content of messages - date: The date the SMS was received/sent. - type: SMS type, 1: receive, 2: send String, if the value of status is a null object, an error message or empty string is returned. |
Request Example:
http://localhost:8090/TotalControl/v1/devices/device@1197374279/messages?position=1&token=C3m461GXAuFs06Qr
Response Example:
If this API executes successfully, it returns:
{
"status": true,
"value": {
"address": "13558543941",
"body": "Fine , thanks. And you ?",
"date": "2017-03-31 04:32:07",
"type": "2"
}
}
If the value of HTTP status code is 200, but the value of status is a null object, it returns:
{
"status": null,
"value": "<Error message>"
}
Example:
Warm tip:
Get the token needed for Total Control script development,see here.
Get the id value of the master device, see here.
RingoJS Example:
// Import the packages
var {request} = require("ringo/httpclient");
var base64 = require("ringo/base64");
// The username and password are separated by a single : and sent on the wire base64 encoded
var userpass = base64.encode("sigma:3D391497");
// First step: Get the API token
var gettoken = request({
method: "GET",
url: "http://localhost:8090/TotalControl/v1/login",
headers: {
"Authorization": userpass
}
});
var ret_token = JSON.parse(gettoken.content);
var token = ret_token.value.token;
print("//The value of token is:" + token);
// Second step: Get the device id value of the master device
var getdevice = request({
method: "GET",
url: "http://localhost:8090/TotalControl/v1/devices/main?token=" + token
});
var device = JSON.parse(getdevice.content).id;
print("//The value of device ID is:"+ device);
// Third step: Execute this REST API
var resp = request({
method: "GET",
url: "http://localhost:8090/TotalControl/v1/devices/" + device + "/messages",
data: {
"count": 3,
"position": 1,
"token": token
}
});
var obj = JSON.parse(resp.content);
var ret = obj.status;
if (ret == true) {
print("//Executed successfully,Return value: \n"+resp.content);
} else if (ret != true & resp.status == 200){
print("An error message is returned: "+resp.content);
} else {
print("This API failed to execute.");
}
The running result of the RingoJS:
If it executes successfully, it will return:
//The value of token is:7mXprTVH0q4DA3eN
//The value of device ID is:device@33254183
//Executed successfully,Return value:
{"status":true,"value":[{"address":"18782900000","body":"Bye","date":"2016-12-27 17:00:32","type":"2"},{"address":"+8618628018888","body":"Hi, How are you?","date":"2017-02-27 15:15:55","type":"1"},{"address":"+86 186 2801 0000","body":"123","date":"2017-02-27 15:16:35","type":"2"}]}
Python Example:
#!/user/bin/python
#-*- coding:utf-8 -*-
import base64
import requests
# The username and password are separated by a single : and sent on the wire base64 encoded
user_pass = 'sigma:3D391497'
encodeStr = base64.b64encode(user_pass.encode("UTF-8"))
# First step: Get the API token
LoginUrl = "http://localhost:8090/TotalControl/v1/login"
response = requests.get(LoginUrl, headers={'Authorization':encodeStr})
print("Get the token,Return value: ",response.json())
token = response.json()['value']['token']
print("The value of token is: ",token)
# Second step: Get the device id value of the master device
if token is not None:
GetDeviceUrl = "http://localhost:8090/TotalControl/v1/devices/main?token=" + token
response = requests.get(url=GetDeviceUrl)
print("Get the device id,Return value: ", response.json())
device = response.json()['id']
print("The value of device id is: ", device)
if device is not None:
# Third step: Execute this REST API
APIUrl = "http://localhost:8090/TotalControl/v1/devices/" + device + "/messages"
data = {
"count": 2,
"position": 1,
"token": token
}
response = requests.get(url=APIUrl, params=data)
ret = response.json()['status']
# Determine if this REST API is executed successfully
if ret is True:
print("Executed successfully,Return value: ", response.json())
elif response.status_code == 200 and ret is not True:
print("An error message is returned: ",response.json())
else:
print("This API failed to execute.")
else:
print("Failed to get device id.")
else:
print("Failed to get token.")
The running result of the python:
If it executes successfully, it will return:
Get the token,Return value: {'status': True, 'value': {'token': '236NY20EUZF0cYQr'}}
The value of token is: 236NY20EUZF0cYQr
Get the device id,Return value: {'id': 'device@33254183'}
The value of device id is: device@33254183
Executed successfully,Return value: {'status': True, 'value': [{'address': '18782989760', 'body': 'Fine , thanks. And you ? ', 'date': '2016-12-27 17:00:32', 'type': '2'}, {'address': '+8618628010223', 'body': 'A very happy day.', 'date': '2017-02-27 15:15:55', 'type': '1'}]}