青莲云提供API
这一块主要是青莲云提供的一些功能来为第三方云来使用的。如果在其他功能接口出现qlaccesstoken失效,重新调用4.1接口更新qlaccesstoken,同时也会返回超时时间。
获取青莲云账号授权
获取青莲云账号ID,即ql_uid和访问token,即ql_access_token,通过发送参数:
1.第三方云账号ID(即thirduid);
2.第三方云注册青莲云开发者账号的ID(即cid)。
青莲云收到请求之后用thirduid查询是否有对应的青莲云账号,若没有则创建一个ql_uid和ql_access_token并绑定thirduid,最后青莲云返回ql_uid和ql_access_token给第三方云。Post请求方式,参数以x-www-form-urlencoded方式放在body里。
例如:
curlhttps://api.qinglianyun.com/open/oauth/v1/get/uid -d"cid=x&sign=xxxxxx&tt=xx&thirduid=xxxxxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data":"{\"qluid\":1,\"qlaccesstoken\":\"xxx\", \"expires\":xxxxxx}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
cid | Int | 客户端的id | 青莲云提供 | 是 |
tt | Int | 时间戳 | 是 | |
sign | String | 客户端签名 | 签名算法为:MD5(client_id + client_secret + tt), 其中client_secret是青莲云提供,tt是时间戳 |
是 |
thirduid | String | 第三方云账号ID | 建议使用用户的手机号 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code 不为0,则msg返回的为相关错误信息 |
是 |
data | String | JSON格式的字符串 | 数据格式如下 | 是 |
qluid | Int | 青莲云用户的uid | 是 | |
qlaccesstoken | String | 青莲云用户的token | 用户token有超时时间 | 是 |
expires | Int | Token失效时间 | 是 |
设备绑定
将设备的绑定到青莲云用户下面。Post请求方式,参数以x-www-form-urlencoded方式放在body里。只能绑定主设备,不支持设备绑定,子设备跟随主设备到用户下面。
例如:
curlhttps://api.qinglianyun.com/open/oauth/v1/bind/device -d"qlaccesstoken=xxxxxx&mac=xxxxxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
qlaccesstoken | String | 青莲云用户账号的token | 青莲云每一个用户账号都是唯一的 | 是 |
mac | String | 绑定的设备mac | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code不为0, 则msg返回的为相关错误信息 |
是 |
查询设备是否在线
查询指定设备是否在线。Post请求方式,参数以x-www-form-urlencoded方式放在body里。支持子设备查询。用户传参数subid表明查询子设备在线状态,不传参数subid表明查询主设备在线状态。
例如:
curl https://api.qinglianyun.com/open/oauth/v1/mac/online -d "qlaccesstoken=xxx&mac=xxxxxx&subid=xxxxxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "true"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如: 5c:cf:7f:c1:0b:fd | 是 |
qlaccesstoken | String | 青莲云用户账号的token | 青莲云每一个用户账号都是唯一的 | 是 |
subid | String | 子设备id | 用户传参数subid表明查询子设备在线 状态,不传参数subid表明查询主设备 在线状态 |
否 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
data | String | 返回值 | 在线返回true,不在线返回false,出错返回空 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code不为0, 则msg返回的为相关错误信息 |
是 |
获取设备列表
获取用户的设备列表包括子设备相关信息,不包含被分享的设备。
请求URL:
curl"https://api.qinglianyun.com/open/oauth/v1/devicelist"
-d"qlaccesstoken=xxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "{\"listinfo\":[
{\"deviceMac\":\"xxx\",\"displayName\":\"xxx\",\"iotId\":\"xxx\",\"productId\":xxx,\"deviceType\":\"xxx\",\"subId\":\"xxx\",\"subIotId\":\"xxx\",\"subDeviceName\":\"xxx\"},
{\"deviceMac\":\"xxx\",\"displayName\":\"xxx\",\"iotId\":\"xxx\",\"productId\":xxx,\"deviceType\":\"xxx\",\"subId\":\"xxx\",\"subIotId\":\"xxx\",\"subDeviceName\":\"xxx\"}
]}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
qlaccesstoken | String | 青莲云用户账号的token | 青莲云每一个用户账号都是唯一的 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果 code不为0,则msg返回的为相关错误信息 |
是 |
data | String | 返回listinfo的 ArrayJson字符串 |
数据格式如下 | 是 |
deviceMac | String | 设备的mac | 是 | |
displayName | String | 设备的显示名称 | 是 | |
iotId | String | 设备的id | 是 | |
productId | Int | 设备所属产品的id | 是 | |
deviceType | String | 设备类型 | 是 | |
subId | String | 子设备的id | 厂商自身定义子设备的id, 主设备该字段为空 |
是 |
subIotId | String | 子设备的iotid | 主设备该字段为空 | 是 |
subDeviceName | String | 子设备的名称 | 主设备该字段为空 | 是 |
获取青莲云账号体系用户id
获取青莲云账号体系用户的id,该接口和接口1返回值qluid是一样的。
请求URL:
curl"https://api.qinglianyun.com/open/oauth/v1/get/userid"
-d"qlaccesstoken=xxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "{\"qluid\":\"xxx\"}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
qlaccesstoken | String | 青莲云用户账号的token | 青莲云每一个用户账号都是唯一的 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code 不为0,则msg返回的为相关错误信息 |
是 |
data | String | 返回对象字符串 | 数据格式如下 | 是 |
qluid | String | 青莲云用户的id | 是 |
获取设备所有数据点的最新一条上报数据
获取单个设备所有数据点的最新一条上报数据。支持子设备。用户传参数subid表明获取子设备数据,不传参数subid表明获取主设备数据。
请求URL:
curl "https://api.qinglianyun.com/open/oauth/v1/all/getdp/data" -d "accesstoken=xxx&mac=xxxxxx&subid=xxxxxx"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": "{
\"cmd\": \"22\",
\"humidity\": \"71\",
\"uv\": \"12\",
\"battery\": \"3\"
}"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | String | 设备的Mac | 如:5c:cf:7f:c1:0b:fd | 是 |
subid | String | 子设备id | 户传参数subid表明对子设备控制,不传参数subid表明对主设备控制 | 否 |
accesstoken | String | 授权的token | 第三方语音控制平台携带 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
data | String | 返回当天该设备所有数据 点上报的最新一条数据 |
JSON格式的字符串数据点和值是 一组key-value键值对 |
是 |
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果 code不为0,则msg返回的为相关错误信息 |
是 |
获取多个设备所有数据点的最新一条上报数据和设备在线状态
获取多个设备所有数据点的最新一条上报数据和设备状态。不支持子设备。
请求URL:
curl"https://api.qinglianyun.com/open/oauth/v1/getdp/data" -d"qlaccesstoken=xxxxx&mac=[\"xxxxxxx\", \"xxxxxxxx\",\"xxxxxx\"]"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data":"[{\"id\":\"xxxx\",\"online\":true,\"data\":{\"cmd\":\"22\",\"humidity\":\"71\"}},{\"id\":\"xxxx\", \"online\":true,\"data\":{\"cmd\":\"22\",\"humidity\":\"71\"}}]"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | List | 设备的Mac列表 | 如:5c:cf:7f:c1:0b:fd | 是 |
qlaccesstoken | String | 青莲云用户账号的token | 青莲云每一个用户账号都是唯一的 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
data | String | JSONArray格式的字符串最外层data | 是 | |
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code 不为0,则msg返回的为相关错误信息 |
是 |
id | String | 设备mac | 如:5c:cf:7f:c1:0b:fd | 是 |
online | Boolean | 设备在线状态 | true在线false不在线 | 是 |
data | JSONObject | 数据点数据 | 是 |
批量下发命令到单个设备
下发多组命令到指定单个设备,支持子设备。设备端一次性接收多条指令而不是一条一条接收。下发指令最多20条限制。用户传参数subid表明对子设备控制,不传参数subid表明对主设备控制。
请求URL:
curl"https://api.qinglianyun.com/open/oauth/v1/all/set/api" -d"qlaccesstoken=xxxxxx&data=[{\"key\":\"xxx\",\"value\":\"xxx\"},{\"key\":\"xxx\",\"value\":\"xxx\"}]&mac=xxxxxx&subid=xxxxxx "
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | List | 设备的Mac列表 | 如:5c:cf:7f:c1:0b:fd | 是 |
qlaccesstoken | String | 青莲云用户账号的token | 青莲云每一个用户账号都是唯一的 | 是 |
data | json | 设置的数据 | 消息目前支持字符串格式 | 是 |
key | String | 数据点的变量名 | 设备所属产品的数据点属性 | 是 |
value | Sting | 数据点的值 | 设备所属产品的数据点的值 | 是 |
subid | String | 子设备id | 户传参数subid表明对子设备控制, 不传参数subid表明对主设备控制 |
否 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
data | JSONArray | 是 | ||
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code不为0, 则msg返回的为相关错误信息 |
是 |
id | String | 设备mac | 如:5c:cf:7f:c1:0b:fd | 是 |
批量下发命令到多个设备
下发同一命令到批量设备。不支持子设备。下发指令最多20条限制。可以对同一个设备下发不同的命令也可以对不同的设备批量下发命令。每次只下发data数组里一条指令,轮询发送。设备一次只能接收一条指令。返回每条指令是否下发成功。
请求URL:
curl"https://api.qinglianyun.com/open/oauth/v1/batch/set/api" -d"qlaccesstoken=xxxxxx&data=[{\"key\":\"xxx\",\"value\":\"xxx\"},{\"key\":\"xxx\",\"value\":\"xxx\"}]&mac=[\"xxxxxx\",\"xxxxxx\",\"xxxxxx\"]"
返回的 JSON 数据:
{
"code": 0,
"msg":"xxxxxxxxxxx",
"data": " [{\"id\":\"xxxx\", \"status\": 0},{\"id\":\"xxxx\", \"status\": 1}]"
}
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mac | List | 设备的Mac列表 | 如:5c:cf:7f:c1:0b:fd | 是 |
qlaccesstoken | String | 青莲云用户账号的token | 青莲云每一个用户账号都是唯一的 | 是 |
data | json | 设置的数据 | 消息目前支持字符串格式 | 是 |
key | String | 数据点的变量名 | 设备所属产品的数据点属性 | 是 |
value | Sting | 数据点的值 | 设备所属产品的数据点的值 | 是 |
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
data | String | JSONArray格式的字符串 | 是 | |
code | Int | 返回码 | 查看Api返回码 | 是 |
msg | String | 返回信息 | 如果code为0,则msg为空;如果code不为0, 则msg返回的为相关错误信息 |
是 |
id | String | 设备mac | 如:5c:cf:7f:c1:0b:fd | 是 |
status | int | 发送状态 | 0不在线或者发送失败1发送成功 | 是 |