用户服务
更新时间:2018-12-24 20:34:53
提供一组与用户相关的服务接口,客户端应用通过本组服务接口可以实现用户绑定设备列表信息的获取,同时可以实现设备和push通道的解绑操作。
获取用户绑定的设备列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/listBindingByAccount |
1.0.2 |
根据用户获取设备列表 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
pageNo |
Int |
是 |
当前页号,从1开始的页序号 |
pageSize |
Int |
是 |
页大小,单页的item数量上限 |
thingType |
String |
否 |
设备类型:"VIRTUAL", "WEB", "APP","DEVICE" |
nodeType |
String |
否 |
设备的节点类型:"DEVICE", "GATEWAY" |
owned |
Int |
否 |
表示绑定类型:0:被分享的设备;1:拥有的设备;null:所有 |
返回参数
参数 |
类型 |
描述 |
total |
Integer |
云端总数 |
pageNo |
Integer |
当前页号 |
pageSize |
Integer |
页大小 |
data |
List< AccountDevDTO > |
设备列表 |
AccountDevDTO.identityId |
String |
用户的身份ID |
AccountDevDTO.iotId |
String |
设备的iotId |
AccountDevDTO.productKey |
String |
设备的productKey |
AccountDevDTO.deviceName |
String |
设备的deviceName |
AccountDevDTO.productName |
String |
设备的产品名称 |
AccountDevDTO.productImage |
String |
设备的产品图片 |
AccountDevDTO.productModel |
String |
设备的产品型号 |
AccountDevDTO.categoryImage |
String |
品类图标 |
AccountDevDTO.nickName |
String |
用户对设备的昵称,用户通过setDeviceNickName设置的昵称 |
AccountDevDTO.netType |
String |
设备入网类型: lora: NET_LORA gprs: NET_CELLULAR wifi: NET_WIFI zigbee: NET_ZIGBEE 蓝牙: NET_BT 以太网: NET_ETHERNET 其他: NET_OTHER |
AccountDevDTO.thingType |
String |
设备的类型:"VIRTUAL", "WEB", "APP","DEVICE" |
AccountDevDTO.nodeType |
String |
设备的节点类型:"DEVICE", "GATEWAY" |
AccountDevDTO.status |
Byte |
设备的状态 0:未激活 ;1:在线;3:离线;8:禁用 |
AccountDevDTO.owned |
Byte |
0:分享者;1:拥有者 |
AccountDevDTO.identityAlias |
String |
用户的显示名(mobile或loginName或email) |
AccountDevDTO.gmtModified |
Date |
修改时间(绑定时间) |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"pageNo":1,
"pageSize":10
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"data": [
{
"productModel": "testProduct",
"iotId": "fy2Z1oZFWZQVii6kkFVM00101edf00",
"netType": "NET_WIFI",
"identityId": "5082opabf5192fb1ae453eced9806fbdae6f6093",
"thingType": "DEVICE",
"nodeType": "DEVICE",
"productKey": "a1OwEjYFJNb",
"deviceName": "b65cb59e688e4f74a208592cd695fb",
"productName": "0d2a0e6195",
"status": 3
},
{
"productModel": "testProduct",
"iotId": "wW4uJnjdxISy7QbzUYKS0010ddb200",
"netType": "NET_WIFI",
"identityId": "5082opabf5192fb1ae453eced9806fbdae6f6093",
"thingType": "DEVICE",
"nodeType": "DEVICE",
"productKey": "a1Btn9lxeJg",
"deviceName": "b824b648947c40e6beb378f4f17e90",
"productName": "07b5962ae7",
"status": 3
}
],
"id": "e2d74ffe-308e-44ee-94a5-9b44a43eabc9"
}
异常返回示例
{
"code":2000,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"iotId is blank!"
}
错误码
请参考公共错误码
根据设备获取绑定关系
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/listBindingByDev |
1.0.2 |
根据设备获取绑定关系 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
是 |
设备id |
pageNo |
Int |
是 |
当前页号,从1开始的页序号 |
pageSize |
Int |
是 |
页大小,单页的item数量上限 |
owned |
Int |
否 |
表示设备绑定的类型:0:作为分享设备被他人分享;1:设备拥有者;null:所有 |
返回参数
参数 |
类型 |
描述 |
total |
Integer |
云端总数 |
pageNo |
Integer |
当前页号 |
pageSize |
Integer |
页大小 |
data |
List< AccountDevDTO > |
查询到的用户设备列表 |
AccountDevDTO.identityId |
String |
用户的身份ID |
AccountDevDTO.iotId |
String |
设备的iotId |
AccountDevDTO.productKey |
String |
设备的productKey |
AccountDevDTO.deviceName |
String |
设备的deviceName |
AccountDevDTO.productName |
String |
设备的产品名称 |
AccountDevDTO.productImage |
String |
设备的产品图片 |
AccountDevDTO.productModel |
String |
设备的产品型号 |
AccountDevDTO.categoryImage |
String |
品类图标 |
AccountDevDTO.nickName |
String |
用户对设备的昵称,用户通过setDeviceNickName设置的昵称 |
AccountDevDTO.netType |
String |
设备入网类型 |
AccountDevDTO.thingType |
String |
设备的类型:"VIRTUAL", "WEB", "APP","DEVICE" |
AccountDevDTO.nodeType |
String |
设备的节点类型:"DEVICE", "GATEWAY" |
AccountDevDTO.status |
Byte |
设备的状态 0:未激活 ;1:在线;3:离线;8:禁用 |
AccountDevDTO.owned |
Byte |
0:分享者;1:拥有者 |
AccountDevDTO.identityAlias |
String |
用户的显示名(mobile或loginName或email) |
AccountDevDTO.gmtModified |
Date |
修改时间(绑定时间) |
AccountDevDTO.description |
String |
描述 |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"pageNo":1,
"pageSize":10,
"iotId":"fy2Z1oZFWZQVii6kkFVM00101edf00"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"data": [
{
"productModel": "testProduct",
"iotId": "fy2Z1oZFWZQVii6kkFVM00101edf00",
"netType": "NET_WIFI",
"identityId": "5082opabf5192fb1ae453eced9806fbdae6f6093",
"thingType": "DEVICE",
"nodeType": "DEVICE",
"productKey": "a1OwEjYFJNb",
"deviceName": "b65cb59e688e4f74a208592cd695fb",
"productName": "0d2a0e6195",
"status": 3
}
],
"id": "e2d74ffe-308e-44ee-94a5-9b44a43eabc9"
}
异常返回示例
{
"code":2064,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"need authorize to bind"
}
错误码
请参考公共错误码
设备列表排序
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/sortDevices |
1.0.2 |
对设备进行排序 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
groupId |
String |
否 |
要排序的空间(如家ID等). 可为空 |
sortDeviceDTOList |
List< SortDeviceDTO > |
是 |
设备排序有变化的数据 |
SortDeviceDTO.iotId |
String |
是 |
设备ID |
SortDeviceDTO.fromOrder |
Integer |
是 |
排序变化前设备的位置 |
SortDeviceDTO.toOrder |
Integer |
是 |
排序变化后设备的位置 |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"groupId":"",
"sortDeviceDTOList":[
{"iotId": "Z75bTa4dYNLxj1Y3SeRW001056af10",
"fromOrder": 1,
"toOrder": 3
},
{"iotId": "faHSHCOxsZGWxdEHbQoN00108dcf00",
"fromOrder": 2,
"toOrder": 1
},
{"iotId": "Spb4eatt1LtRY7VxWdeq00108a4410",
"fromOrder": 3,
"toOrder": 2
}
]
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2000,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"sortDevice param error!"
}
错误码
请参考公共错误码
生成分享用的二维码
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/generateShareQrCode |
1.0.2 |
生成设备分享用的二维码,支持批量设备和场,有效期30分钟 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotIdList |
List< String > |
否 |
设备iotId列表(iotIdList和sceneIdList不能同时为空) |
sceneIdList |
List< String > |
否 |
场景sceneId列表(iotIdList和sceneIdList不能同时为空) |
groupId |
String |
否 |
设备和场景所在的空间(如家ID等). 可为空 |
返回参数
参数 |
类型 |
描述 |
qrKey |
String |
生成的二维码key |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"iotIdList":["xxxx"],
"sceneIdList":["xxxx"]
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"data": {
"qrKey": "xxxxxx"
},
"id": "6ec222eb-87fc-421e-9b67-351df196ceb3"
}
异常返回示例
{
"code":2081,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"scene not found by sceneId"
}
错误码
请参考公共错误码
通过扫描二维码绑定设备
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/scanBindByShareQrCode |
1.0.2 |
通过扫描二维码绑定设备,绑定后是普通成员 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
qrKey |
String |
是 |
扫描的二维码key |
返回参数
参数 |
类型 |
描述 |
ScanShareQrCodeV2Resp |
Object |
绑定的设备ID列表 |
ScanShareQrCodeV2Res结构
参数 |
类型 |
描述 |
iotIdListp |
List |
绑定的设备ID列表 |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"qrKey":"xxxx"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"data": {
"iotIdList":["abc","123"]
},
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2067,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"qrKey not exist"
}
错误码
请参考公共错误码
设备分享给指定的用户
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/shareDevicesAndScenes |
1.0.2 |
将设备分享给指定的用户,只针对内置账号,自有账号目前不支持这个功能 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotIdList |
List< String > |
是 |
设备iotId列表 |
accountAttr |
String |
是 |
唯一标识目标用户的属性(如:手机号、邮箱的值) |
accountAttrType |
String |
是 |
唯一标识目标用户的属性类型(如:手机号、邮箱等),手机号:"MOBILE",邮箱: "EMAIL" |
mobileLocationCode |
String |
否 |
手机号区位码,如86 |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"accountAttr":"13656637684",
"accountAttrType": "MOBILE",
"iotIdList":[
"inqfGrp0Cu5IRelvqdpD00100fd600",
"ETytXLwjIMRZK0GFW4qG0010629e00"
]
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2064,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"need authorize to bind"
}
错误码
错误码 |
错误信息 |
来源 |
详细描述 |
2062 |
identityId not exist |
业务 |
iedntityId 不存在 |
2066 |
identityId is not manager |
业务 |
管理员与设备未绑定 |
2073 |
share model of this product is not supported |
业务 |
分享模式不支持 |
2074 |
query msg-center hsf error |
业务 |
调用消息中心错误 |
2075 |
share model not config for this product |
业务 |
分享模式未配置 |
2077 |
"can't get identityId by email and mobile |
业务 |
无法根据手机号或影响找到用户 identityId |
2086 |
can not share to oneself |
业务 |
不能分享给自己 |
2087 |
iotId has bind to target user |
业务 |
设备和目标用户已绑定 |
获取共享通知列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/getShareNoticeList |
1.0.2 |
获取共享通知列表 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
pageNo |
Int |
是 |
当前页号,从1开始的页序号 |
pageSize |
Int |
是 |
页大小,单页的item数量上限 |
返回参数
参数 |
类型 |
描述 |
total |
Integer |
云端总量 |
pageNo |
Integer |
当前页号 |
pageSize |
Integer |
页大小 |
shareNoticeList |
List< ShareNoticeDTO > |
分享列表 |
ShareNoticeDTO.initiatorAlias |
String |
发起分享用户别名 |
ShareNoticeDTO.receiverAlias |
String |
被分享用户别名 |
ShareNoticeDTO.targetId |
String |
共享的物的ID |
ShareNoticeDTO.targetType |
String |
共享的物的类型 |
ShareNoticeDTO.productImage |
String |
设备产品图片 |
ShareNoticeDTO.deviceName |
String |
设备的deviceName |
ShareNoticeDTO.isReceiver |
Integer |
当前用户是否是消息接收者 |
ShareNoticeDTO.gmtCreate |
Long |
创建时间 |
ShareNoticeDTO.gmtModified |
Long |
修改时间 |
ShareNoticeDTO.recordId |
String |
分享记录唯一标识 |
ShareNoticeDTO.status |
Integer |
状态: -1: 初始化; 0:同意; 1:拒绝; 2:取消; 3:过期; 4:抢占; 5:删除; 6:发起者已解绑; 99:异常 |
ShareNoticeDTO.description |
String |
描述 |
ShareNoticeDTO.categoryImage |
String |
品类图标 |
ShareNoticeDTO.productName |
String |
产品名称 |
ShareNoticeDTO.nickName |
String |
设备昵称 |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"pageNo": 1,
"pageSize":10
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"data": [
{
"gmtCreate": "15275845255",
"gmtModified": "15235845255",
"targetId": "fy2Z1oZFWZQVii6kkFVM00101edf00",
"categoryImage": "http://xxx",
"description": "向15163587365共享设备中,待对方确认",
"targetType": "DEVICE",
"recordId": "a1OwEjY1d555d5dfdFJNb",
"deviceName": "b65cb59e688e4f74a208592cd695fb",
"productName": "0d2a0e6195",
"initiatorAlias":"15632547896",
"receiverAlias":"15163587365",
"isReceiver": 0,
"status": -1
}
],
"id": "e2d74ffe-308e-44ee-94a5-9b44a43eabc9"
}
异常返回示例
{
"code":2062,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"identityId not exist"
}
错误码
请参考公共错误码
发起者取消分享
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/cancelShare |
1.0.2 |
发起者取消分享 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
recordIdList |
List< String > |
是 |
分享记录列表 |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"recordIdList":[
"d4eb352adac248be91fb61d53febd503",
"2568degt2adac248be91fb61d53febd3"
]
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2093,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"forbidden to repeat cancel sharing."
}
错误码
错误码 |
错误信息 |
来源 |
详细描述 |
2078 |
not the same initiator when cancel share dev or scene |
业务 |
不是同一个发起者 |
2082 |
receiver has reject share |
业务 |
接收者已拒绝分享 |
2085 |
receiver has agree share. |
业务 |
接收者已同意分享 |
2093 |
forbidden to repeat cancel sharing |
业务 |
不允许重复取消 |
2096 |
sharing time expired |
业务 |
分享已过期 |
2097 |
sharing record not exist |
业务 |
分享不存在 |
被分享者同意/拒绝分享
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/confirmShare |
1.0.2 |
被分享者同意/拒绝分享 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
recordIdList |
List< String > |
是 |
分享记录列表 |
agree |
Integer |
是 |
0:不同意;1:同意. 必填 |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"recordIdList":[
"d4eb352adac248be91fb61d53febd503",
"2568degt2adac248be91fb61d53febd3"
],
"agree":1
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2092,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"forbidden to repeat reject sharing."
}
错误码
请参考公共错误码
设置设备昵称
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/setDeviceNickName |
1.0.2 |
设置设备昵称 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
groupId |
String |
否 |
设备的空间(如家ID等) |
iotId |
String |
是 |
设备ID |
nickName |
String |
是 |
昵称 |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"iotId": "5070op867df8c1941fbb2727449d87c207471699",
"nickName":"nickName"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2062,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"identityId not exist"
}
错误码
请参考公共错误码
解绑用户和设备
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/unbindAccountAndDev |
1.0.2 |
解绑用户和设备。若用户不是拥有者(管理员),则只解绑自己;若用户是拥有者(管理员),则再解绑与该设备绑定的所有用户。若用户是管理员且设备是网关,则还会解绑用户和其所有的子设备。 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
否 |
设备ID |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"iotId":"xxxx"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2062,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"identityId not exist"
}
错误码
请参考公共错误码
查询用户和设备的关系
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/getByAccountAndDev |
1.0.2 |
查询用户和设备的关系. 如不存在, 返回一个空对象. |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
是 |
设备ID |
返回参数
参数 |
类型 |
描述 |
identityId |
String |
用户的身份ID |
iotId |
String |
设备的iotId |
AproductKey |
String |
设备的productKey |
deviceName |
String |
设备的deviceName |
productName |
String |
设备的产品名称 |
productImage |
String |
设备的产品图片 |
productModel |
String |
设备的产品型号 |
nickName |
String |
用户对设备的昵称 |
netType |
String |
设备入网类型 |
thingType |
String |
设备的类型:"VIRTUAL", "WEB", "APP","DEVICE" |
nodeType |
String |
设备的节点类型:"DEVICE", "GATEWAY" |
status |
Byte |
设备的状态 0:未激活 ;1:在线;3:离线;8:禁用 |
owned |
Byte |
0:分享者;1:拥有者 |
identityAlias |
String |
用户的显示名(mobile或loginName或email) |
gmtModified |
Date |
修改时间(绑定时间) |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"iotId":"xxxx"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"data":
{
"productModel": "testProduct",
"iotId": "fy2Z1oZFWZQVii6kkFVM00101edf00",
"netType": "NET_WIFI",
"identityId": "5082opabf5192fb1ae453eced9806fbdae6f6093",
"thingType": "DEVICE",
"nodeType": "DEVICE",
"productKey": "a1OwEjYFJNb",
"deviceName": "b65cb59e688e4f74a208592cd695fb",
"productName": "0d2a0e6195",
"status": 3
},
"id": "e2d74ffe-308e-44ee-94a5-9b44a43eabc9"
}
异常返回示例
{
"code":2063,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"iotId not exist"
}
错误码
请参考公共错误码
管理员解绑设备
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/unbindByManager |
1.0.2 |
管理员解绑指定的用户和设备。要求当前登录用户是设备的管理员、拥有者。 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
targetIdentityId |
String |
是 |
要解绑的用户(设备的普通成员),不能与identityId相同 |
iotIdList |
List< String> |
是 |
要解绑的设备ID列表 |
返回参数
无
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"targetIdentityId":"xxxx",
"iotIdList":[
"d4eb352adac248be91fb61d53febd503",
"2568degt2adac248be91fb61d53febd3"
]
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2083,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"you are not the manager of some devices"
}
错误码
请参考公共错误码
清空共享消息列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/clearShareNoticeList |
1.0.2 |
清空共享消息列表(包括本人发起和接收全部) |
是,客户端SDK需启用身份的鉴权 |
请求参数
返回参数
无
示例
请求示例
{
"request": {
"iotToken": "c4b3f642a91880195a5e7a06a3c5dcb3",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2062,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"identityId not exist"
}
错误码
请参考公共错误码
绑定push通道
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/bindPushChannel |
1.0.2 |
绑定push通道 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
deviceId |
String |
是 |
push通道的deviceId |
deviceType |
String |
是 |
设备类型:iOS或ANDROID,值由业务方和app协商 |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"deviceId":"xxxx",
"deviceType":"iOS"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2062,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"identityId not exist"
}
错误码
请参考公共错误码
解绑push通道
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/unbindPushChannel |
1.0.2 |
绑定push通道 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
deviceId |
String |
是 |
push通道的deviceId |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"deviceId":"xxxx"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2062,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"identityId not exist"
}
错误码
请参考公共错误码
获取网关的子设备列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/subdevices/list |
1.0.2 |
获取用户绑定的网关子设备列表 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
是 |
设备ID |
pageNo |
Int |
是 |
当前页号,从1开始的页序号 |
pageSize |
Int |
是 |
页大小,单页的item数量上限 |
返回参数
参数 |
类型 |
描述 |
total |
Integer |
云端总数 |
pageNo |
Integer |
当前页号 |
pageSize |
Integer |
页大小 |
data |
List< DeviceInfoDTO > |
子设备列表 |
DeviceInfoDTO.iotId |
String |
设备的iotId |
DeviceInfoDTO.productKey |
String |
设备的productKey |
DeviceInfoDTO.deviceName |
String |
设备的deviceName |
DeviceInfoDTO.nickName |
String |
设备的产品名称 |
DeviceInfoDTO.image |
String |
品类图片 |
DeviceInfoDTO.status |
Byte |
设备的在线状态:0 - 未激活, 1 - 在线, 3 - 离线, 8 - 禁用 |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"iotId":"xxxxxxx",
"pageNo":1,
"pageSize":10
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"data": [
{
"iotId": "testIot",
"productKey": "fy2Z1oZFWZQVii6kkFVM00101edf00",
"deviceName": "NET_WIFI",
"nickName": "xxxxxx",
"image": "http://abc.jpg",
"status": 0
},
{
"iotId": "testIot",
"productKey": "fy2Z1oZFWZQVii6kkFVM00101edf00",
"deviceName": "NET_WIFI",
"nickName": "xxxxxx",
"image": "http://abc.jpg",
"status": 0
}
],
"id": "e2d74ffe-308e-44ee-94a5-9b44a43eabc9"
}
异常返回示例
{
"code":2062,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"identityId not exist"
}
错误码
请参考公共错误码
解绑用户和场景
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/unbindAccountAndScene |
1.0.2 |
解绑用户和场景. 若用户不是场景的拥有者(管理员), 则只解绑自己; 若用户是拥有者(管理员), 则再解绑与该场景绑定的所有用户 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
sceneId |
String |
是 |
场景ID |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.2"
},
"id": 1508212818676,
"params": {
"sceneId":"xxxx"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"id":"bb179e80-39fd-4a79-ba97-48ca87a3f5c5"
}
异常返回示例
{
"code":2081,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"请求错误",
"message":"scene not found by sceneId"
}
错误码
请参考公共错误码
创建虚拟用户
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/virtual/user/create |
1.0.4 |
创建当前登录用户名下的虚拟用户 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
attrList |
List |
否 |
用户的属性及属性值。 若为空,则表示只创建一个无属性的用户。属性Key必须是在规定的系统属性中选择,具体系统属性定义参见虚拟用户属性定义表 |
attrList列表结构
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性Key |
attrValue |
String |
是 |
属性值 |
返回参数
参数 |
类型 |
描述 |
userId |
String |
创建的虚拟用户ID |
attrList |
List |
用户的属性值,意义同请求参数 |
attrList列表结构
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性Key |
attrValue |
String |
是 |
属性值 |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.4"
},
"id": 1508212818676,
"params": {
"attrList": [
{
"attrKey":"name",
"attrValue":"小明"
}
]
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"message": "success",
"data": {
"userId":"10B6336EFE05374FF99BDD428F58AA5A18",
"attrList":[
{
"attrKey":"name",
"attrValue":"小明"
}
]
}
}
异常返回示例
{
"code":503,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"服务不可用",
"message":"service not available."
}
错误码
请参考公共错误码
删除虚拟用户
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/virtual/user/delete |
1.0.4 |
删除当前登录用户名下的虚拟用户 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
virtualUserId |
String |
是 |
虚拟用户ID |
返回参数
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.4"
},
"id": 1508212818676,
"params": {
"userId":"10B6336EFE05374FF99BDD428F58AA5A18"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"message": "success",
"data": null
}
异常返回示例
{
"code":503,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"服务不可用",
"message":"service not available."
}
错误码
请参考公共错误码
更新虚拟用户信息
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/virtual/user/update |
1.0.4 |
更新当前登录用户名下的虚拟用户信息 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
virtualUserId |
String |
是 |
虚拟用户ID |
opType |
Integer |
是 |
更新时属性时的操作类型(opType)的类型,目前仅支持三种:1:ADD,2:UPDATE,3:DELETE |
attrList |
List |
是 |
用户的属性及属性值。属性Key必须是在规定的系统属性中选择,具体系统属性定义参见虚拟用户属性定义表 |
attrList列表结构
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性Key |
attrValue |
String |
是 |
属性值 |
返回参数
参数 |
类型 |
描述 |
userId |
String |
创建的虚拟用户ID |
attrList |
List |
用户的属性值,意义同请求参数 |
attrList列表结构
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性Key |
attrValue |
String |
是 |
属性值 |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.4"
},
"id": 1508212818676,
"params": {
"userId":"10B6336EFE05374FF99BDD428F58AA5A18",
"opType":2,
"attrList":[
{
"attrKey":"name",
"attrValue":"小李"
}
]
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"message": "success",
"data": {
"userId":"10B6336EFE05374FF99BDD428F58AA5A18",
"attrList":[
{
"attrKey":"name",
"attrValue":"小明"
}
]
}
}
异常返回示例
{
"code":503,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"服务不可用",
"message":"service not available."
}
错误码
错误码 |
错误信息 |
来源 |
详细描述 |
28528 |
operation type not support. |
业务 |
不支持当前传入的虚拟用户信息更新操作类型 |
28529 |
virtual user attr list is empty. |
业务 |
虚拟用户的属性列表为空 |
查询虚拟用户列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/virtual/user/list |
1.0.4 |
查询当前登录用户名下的虚拟用户列表 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
pageNo |
Integer |
是 |
当前页号,从1开始的页序号 |
pageSize |
Integer |
是 |
页大小,单页的item数量上限 |
返回参数
参数 |
类型 |
描述 |
total |
Long |
虚拟用户总数 |
pageNo |
Integer |
当前页号 |
pageSize |
Integer |
页大小 |
data |
List |
虚拟用户列表 |
data列表结构
参数 |
类型 |
必填 |
描述 |
userId |
String |
是 |
虚拟用户ID |
attrList |
List |
是 |
用户的属性及属性值。属性Key必须是在规定的系统属性中选择,具体系统属性定义参见虚拟用户属性定义表 |
attrList列表结构
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性Key |
attrValue |
String |
是 |
属性值 |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.4"
},
"id": 1508212818676,
"params": {
"pageNo":1,
"pageSize":10
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"message": "success",
"data": {
"total":1,
"pageNo":1,
"pageSize":10,
"data":[
{
"userId":"10B6336EFE05374FF99BDD428F58AA5A18",
"attrList":[
{
"attrKey":"name",
"attrValue":"小明"
}
]
}
]
}
}
异常返回示例
{
"code":503,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"服务不可用",
"message":"service not available."
}
错误码
请参考公共错误码
查询虚拟用户详情
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/virtual/user/query |
1.0.4 |
查询当前登录用户名下的虚拟用户详情 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
virtualUserId |
String |
是 |
虚拟用户ID |
返回参数
参数 |
类型 |
描述 |
userId |
String |
是 |
虚拟用户ID |
attrList |
List |
是 |
用户的属性及属性值。属性Key必须是在规定的系统属性中选择,具体系统属性定义参见虚拟用户属性定义表 |
attrList列表结构
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性Key |
attrValue |
String |
是 |
属性值 |
示例
请求示例
{
"request": {
"iotToken": "109049c80bcde4c06b15f6f62e29a3ba",
"apiVer": "1.0.4"
},
"id": 1508212818676,
"params": {
"userId":"10B6336EFE05374FF99BDD428F58AA5A18"
},
"version": "1.0"
}
正常返回示例
{
"code": 200,
"message": "success",
"data": {
"userId":"10B6336EFE05374FF99BDD428F58AA5A18",
"attrList":[
{
"attrKey":"name",
"attrValue":"小明"
}
]
}
}
异常返回示例
{
"code":503,
"id":"4fa207ca-fffd-48bb-94b8-e6f7ca6c99c3",
"localizedMsg":"服务不可用",
"message":"service not available."
}
错误码
请参考公共错误码
虚拟用户属性定义表
attrKey |
attrType |
attrName |
备注 |
displayName |
STRING |
显示名 |
|
name |
STRING |
姓名 |
|
gender |
INTEGER |
性别 |
1男;2女 |
birthday |
STRING |
生日 |
|
QQ |
STRING |
QQ号码 |
|
employeeID |
STRING |
工号 |
|
extNum |
STRING |
办公分机号 |
|
homeAddress |
STRING |
家庭地址 |
|
companyAddress |
STRING |
公司地址 |
|
companyName |
STRING |
公司名称 |
|
country |
STRING |
国家名称 |
|
region |
STRING |
所在地区 |
|
avatar |
STRING |
头像 |
头像的图片URL地址 |
更新或者创建用户属性标示
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/virtual/user/query |
1.0.4 |
查询当前登录用户名下的虚拟用户详情 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性字段标识 |
attrType |
String |
是 |
属性字段类型,INTEGER/STRING/ENUM等 |
attrExtra |
String |
是 |
属性字段额外数据,例如当类型为枚举类型时,该字段使用json string,key-value形式存储 |
attrNameCn |
String |
是 |
属性字段中文名称 |
description |
String |
是 |
属性字段的说明描述 |
返回参数
参数 |
类型 |
描述 |
|
Boolean |
是 |
操作是否成功 |
更新或者创建用户属性标示
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/uc/virtual/user/attribution/createOrUpdate |
1.0.7 |
更新或者创建用户属性标示 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性字段标识 |
attrType |
String |
是 |
属性字段类型,INTEGER/STRING/ENUM等 |
attrExtra |
String |
是 |
属性字段额外数据,例如当类型为枚举类型时,该字段使用json string,key-value形式存储 |
attrNameCn |
String |
是 |
属性字段中文名称 |
description |
String |
是 |
属性字段的说明描述 |
返回参数
参数 |
类型 |
描述 |
|
Boolean |
是 |
操作是否成功 |
获取所有用户属性标示
定义描述
Method |
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
GET |
/uc/virtual/user/attribution/all |
1.0.7 |
获取所有用户属性标示 |
是,客户端SDK需启用身份的鉴权 |
请求参数
N/A
返回参数
参数 |
类型 |
描述 |
attrKey |
String |
属性字段标识 |
attrType |
String |
属性字段类型,INTEGER/STRING/ENUM等 |
attrNameCn |
String |
属性字段中文名称 |
attrExtra |
String |
属性字段额外数据,例如当类型为枚举类型时,该字段使用json string,key-value形式存储 |
description |
String |
属性字段的说明描述 |