REST API
属性设置
功能说明:
设置设备的属性值。
调用地址:
https://api.iot.jiguang.cn/device/v1/property
请求示例:
curl --insecure -X POST -v https://api.iot.jiguang.cn/device/v1/property -H "Content-Type: application/json" -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1" -d '{"seq_no":1, "device_name":"your device_name", "version":1, "properties":[ {"name":"p1", "value":"v1"}]}'
> POST /device/v1/property HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
参数说明:
关键字 | 类型 | 选项 | 含义 | 说明 |
---|---|---|---|---|
seq_no | int | 必填 | 应用端的对于该该操作的id | 该 id 应用在15 分钟内不能重复使用,否则服务端会认为是重复请求 |
device_name | string | 必填 | 待设置属性的设备名称 | |
version | int | 必填 | 属性设置操作的版本id | |
properties | array | 必填 | 待设置的属性项数组 | |
name | string | 必填 | 属性项名称 | |
value | number/string | 必填 | 属性项值 | 当属性为 int/double 时,字段类型使用 number,如果设置了值的区间,会校验值是否合法。当属性是 string 时,字段类型使用 string 默认最大长度(1024 byte)。 |
返回示例
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"device_name": "your device_name",
"op_code": 0,
"op_id": 1,
"op_status": "ok"
}
返回说明
msg json 对象: device_name : 设备的 device_name op_code : 属性设置操作的返回的状态码 0 表示成功 op_id : 属性设置的操作id op_status : 用来对 op_code 的简短描述
下发消息
功能说明:
下发消息到指定的设备。
调用地址:
https://api.iot.jiguang.cn/msg/v1/msg
请求示例:
curl --insecure -X POST -v https://api.iot.jiguang.cn/msg/v1/msg -H "Content-Type: application/json" -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1" -d '{"seq_no":1, "device_name":"your device_name", "msg_body":"this is the first msg"}'
> POST /msg/v1/msg HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
参数说明
关键字 | 类型 | 选项 | 含义 | 说明 |
---|---|---|---|---|
seq_no | int | 必选 | 应用端的对于该该操作的id | 该 id 应用在 15 分钟内不能重复使用,否则服务端会认为是重复请求 |
device_name | string | 必选 | 需要发送消息到的设备名称 | |
msg_body | string | 必选 | 发送的消息体的内容 | 最大长度 2048 byte。 |
ttl | int | 可选 | 该消息的有效期 | 范围为0~604800秒(0到7天),请求中如不携带,服务器默认为86400秒(1天) |
返回示例
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"msgid": 4
}
返回说明:
msg : 返回该消息的全局消息 id
查询设备基本信息
功能说明:
查询设备基本信息。
调用地址:
https://api.iot.jiguang.cn/device/v1/baseinfo
请求示例:
curl --insecure -X GET -v https://api.iot.jiguang.cn/device/v1/baseinfo?device_name="your device_name" -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
> GET /device/v1/baseinfo HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
参数说明:
关键字 | 类型 | 选项 | 含义 | 说明 |
---|---|---|---|---|
device_name | string | 必填 | 需查询的设备名称 |
返回示例:
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"device_secret": "a335f2e1c59b40e3908f57e9",
"flag": 0,
"time_create": 1547435552,
"time_active": 1547454560
}
返回说明:
设备基础信息的 json 对象:
- device_secret : 设备的 device_secret
- flag : 设备的 当前状态是启用还是禁用
- time_create: 设备的创建时间 unix 时间戳
- time_active: 设备的激活时间 unix 时间戳
查询设备属性信息
功能说明:
查询设备属性信息。
调用地址:
https://api.iot.jiguang.cn/device/v1/property
请求示例:
curl --insecure -X GET -v https://api.iot.jiguang.cn/device/v1/property?device_name="your device_name" -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
> GET /device/v1/property HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
参数说明:
关键字 | 类型 | 选项 | 含义 | 说明 |
---|---|---|---|---|
device_name | string | 必填 | 需查询的设备名称 |
返回示例:
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"properties": [{
"name": "string",
"desired_value": "test",
"desired_stime": 1547620623651,
"reported_value": "test",
"reported_stime": 1547620823651
}],
"sdk_ver": "1.01",
"app_ver": "1.00",
"last_desired_stime": 1547620623651,
"last_reported_stime": 1547620823651,
"last_desired_version": 3,
"last_reported_version": 2
}
返回说明:
- properties: 设备属性信息的 json 数组对象
- name : 属性名称。(必选)
- desired_value : 设置设备属性值。
- desired_stime :设置设备属性值的 unix 时间戳。
- reported_value : 设备上报属性的当前值
- reported_stime :设备上报属性的 unix 时间戳
- sdk_ver : 设备端使用的 sdk 的版本信息
- app_ver : 应用 app 的版本信息
- last_desired_stime :设备最近一次设备属性的 unix 时间戳
- last_reported_stime :设备最近一次设备属性的 unix 时间戳
- last_desired_version :设备下一次设置可用的属性版本 id
- last_reported_version : 设备最近一次上报的属性版本
查询设备状态信息
功能说明:
查询设备状态信息。
调用地址:
https://api.iot.jiguang.cn/device/v1/status
请求示例:
curl --insecure -X GET -v https://api.iot.jiguang.cn/device/v1/status?device_name="your device_name" -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
> GET /device/v1/status HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
参数说明:
关键字 | 类型 | 选项 | 含义 | 说明 |
---|---|---|---|---|
device_name | string | 必填 | 需查询的设备名称 |
返回示例:
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"status": 0,
"client_ip": "113.31.131.101",
"last_login_time": "1547454560",
"last_logout_time": "1547454569"
}
返回说明:
- status : 设备当期的状态 0-未在线, 1-在线
- client_ip : 设备最近一次上线时的 ip 地址
- last_login_time : 设备最近一次登录时间
- last_logout_time : 设备最近一次登出时间
批量创建设备
功能说明:
批量创建设备接口。
调用地址:
https://api.iot.jiguang.cn/device/v1/devices
请求示例:
curl --insecure -X POST -v https://api.iot.jiguang.cn/device/v1/devices -H "Content-Type: application/json" -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1" -d '{"device":[{"name":"device_1","mark":"备注1"},{"name":"device_2","mark":"备注2"}]}'
> POST /device/v1/devices HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
参数说明:
关键字 | 类型 | 选项 | 含义 | 说明 |
---|---|---|---|---|
device | 设备对象数组 | 必填 | 待创建的设备对象 | 每个设备对象包括一个 name 和mark 每个请求最大支持添加1000个设备 |
name | string | 必填 | 设备的名字 | 只支持数字、 英文字母和-_@. 长度为4~24 字符 |
mark | string | 可选 | 设备的备注 | 长度为0~128 字符 |
返回示例:
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"resp": [
{
"device_name": "device_1",
"code": 0,
"device_secret": "xxxxxxxx"
},
{
"device_name": "device_2",
"code": 0
"device_secret": "xxxxxxxx"
},
{
"device_name": "device_3",
"code": 0,
"device_secret": "xxxxxxxx"
}
]
}
返回说明:
- resp json 对象:该对象为数组,数据中的每个元素对应请求中 device_name 的创建应答。如果设备创建成功,则包含device_secret,失败则包含错误原因。
返回错误说明
当返回的 code 不是 200 时,表示请求错误。
< HTTP/1.1 400 Bad request
< Content-Type: application/json
{
"error" " {
"code": 1003,
"message": "params invalid"
}
}
参数说明:
code: 标识请求错误类型。 msg : 标识请求错误具体的原因。
错误码
Code | 描述 | 详细解释 | HTTP Status |
---|---|---|---|
1000 | 系统内部错误 | 服务器端内部逻辑错误,请稍后重试。或反馈问题给极光 | 500 |
1002 | 缺少了必须的参数 | 必须改正,检查要求必填的参数是否未写 | 400 |
1003 | 参数值不合法 | 必须改正。参数不合法的情况如: | 400 |
1004 | 验证失败 | 必须改正。检查 productkey 与 mastersecret, | 401 |
2002 | API调用频率超出该应用的限制 | 注意 API 频率控制,可联系极光商务或技术支持开通更高的 API 调用频率 | 429 |