Appearance
接口列表
TIP
请先阅读接口总体规范,再阅读此文档
获取 token
接口功能
该接口用于应用根据 appid 和 secret 获取 accessToken。
注意
获取到的 accessToken 有效期是 7 天,请在即将过期或者接口报错 11504 时重新获取,请勿频繁调用,频繁调用将会被拉入限制黑名单。
每次获取新的token,历史token则会失效。
- 应用 token:拥有该应用的所有资源的权限,应用 token 有效期比较长。
- 自定义 token:用于申请获应用的部分资源的权限,每个自定义 token 互相独立,有效期比较短暂。
请求地址
https://open.qly.cmviot.cn/v3/open/api/token
请求方式
POST,无需鉴权(header 参数无需 token)
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
operatorType | int | Y | 获取 token 类型 | 1:应用 token(拥有该应用全部权限),2:自定义 token(拥有该应用部分权限)。 |
sig | String | Y | 签名(32 位小写字符串) | MD5(appId+secret) |
action | String | N | 行为 | read:只读,write:可读可写,获取应用 token 时不传。 |
targetType | String | N | 资源类型 | 2:设备,获取应用 token 时不传。 |
target | String | N | 目标资源 | 多个设备 id 以逗号拼接,获取应用 token 时不传。 |
签名方法
try{
String appid = "dfgd5115";
String secret = "dgfds41d5sf1g5sdfgd";
String sig = Hex.encodeHexString(MessageDigest.getInstance("MD5").digest(StringUtils.getBytesUtf8(appid+secret)));
}catch (Exception e){}
请求示例
申请应用token:(确保无空格)
{"operatorType":1,"sig":"d41d8cd98f00b204e9800998ecf8427e"}
申请设备xxxxS_abcde的只读权限的自定义token:
{
"operatorType":2,
"action":"read",
"targetType":2,
"target":"xxxxS_abcde",
"sig":"d41d8cd98f00b204e9800998deca120"
}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
resultCode | string | 响应码 | 返回错误码。0:success |
resultMsg | string | 响应描述 | 简单错误信息说明 |
data | obj | 响应数据 | 返回结果内容(JSON 格式 → String),详情参照 data 数据模型 |
data 数据模型
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
expires_in | int | token 失效时间,单位:秒 | |
token | String | token | |
tokenNum | String | token 号 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"expires_in": 604800,
"token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIzNDIzOTU3Mzk4NTcyMyIsImFwcGlkIjoiMzQyMzk1NzM5ODU3MjMiLCJvcGVyYXRvclR5cGUiOjEsImV4cCI6MTU2MDMyMjk0MCwiYXBwUmVnaW9uIjoxLCJpYXQiOjE1NTk3MTgxNDAsIm9wZXJhdG9yIjoiMzQyMzk1NzM5ODU3MjMiLCJqdGkiOiIxNTU5NzE4MTQwNzk2In0.G4JRsjlAZQefgfwX8W953VH6pJusXpjkwQHXMDX2PU4"
"tokenNum":"1165410984518"
}
}
获取一键登录移动千里眼链接
TIP
获取 token 相关接口无需遵循总体规范
TIP
授权登录移动千里眼应用采用 OAuth 2.0 标准定义的方式来完成应用授权,目前仅支持 Authorization Code Grant
模式
授权页链接(authorization endpoint):
https://open.qly.cmviot.cn/normal/oauth/authorize?response_type=code&client_id={appid}&redirect_uri={xxx}&state={xxx}
redirect_uri 回调时携带的参数:
- code
- state
获取访问令牌链接(token endpoint):
https://open.qly.cmviot.cn/normal/oauth/token
post 参数:
- grant_type : 授权类型,固定值
authorization_code
或refresh_token
- client_id : 应用 ID,在应用信息里面查看
- client_secret : 应用密码,在应用信息里面查看
- redirect_uri : 重定向网址,获取 code 时传入的 redirect_uri
- code : 授权码,来源于通过 redirect_uri 回调时携带的 code
- refresh_token: 刷新 access_token, grant_type 为
refresh_token
必传
响应报文:
json
{
"access_token": "xxx",
"refresh_token": "yyy",
"token_type": "bearer",
"expires_in": 7200,
"url": "https://qly.andmu.cn/normal/#/login?token={xxx}"
}
获取移动千里眼登录链接:
https://open.qly.cmviot.cn/normal/oauth/getLoginUrl
post 参数:
- accessToken : 访问令牌
响应报文:
json
{
"url": "https://qly.andmu.cn/normal/#/login?token={xxx}"
}
WARNING
参数 token 是临时的,有效期仅有 5 分钟,且仅能使用一次。即返回的url
登录成功后立即失效。
获取设备列表
接口功能
分页获取项目下设备列表。
请求地址
https://open.qly.cmviot.cn/v3/open/api/device/list
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
page | int | N | 页码 | |
pageSize | int | N | 每页大小,最大为 100 | |
onlineStatus | int | N | 设备在线状态 | 1:在线;0:离线) ,非必填,不传则返回所有设备 |
请求示例
{
"page": 1,
"pageSize": 10
}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
resultCode | String | 响应码 | 参考响应码定义 |
resultMsg | String | 响应描述 | |
total | Integer | 记录数 | 分页查询时使用 |
page | Integer | 当前页 | 分页查询时使用 |
pageSize | Integer | 页大小 | 分页查询时使用,最大为 100 |
data | List | 响应数据 | 响应数据,支持分页和不分页两种方式 |
data 数据模型
名称 | 类型 | 是否必须 | 说明 | 备注 |
---|---|---|---|---|
deviceId | String | Y | 摄像机 MAC | 如 xxxxS_2418c624d26b, gb_45671234561324556789 |
deviceName | String | Y | 摄像机名称 | |
createTime | String | Y | 创建时间 | 13 位时间戳 |
camModelName | String | Y | 摄像机型号名称 | |
deviceStatus | int | Y | 摄像机在线状态 1:在线;0:离线;2: 国标设备未接入 | |
deviceSwitch | int | Y | 摄像机开关状态 1:打开;0:关闭;2:未知状态 | |
deviceLatitude | String | N | 设备位置维度 | |
deviceLongitude | String | N | 设备位置经度 | |
nvrInfo | object | N | 本设备所属的NVR设备信息。非NVR下的通道设备,不会返回该参数 | |
deviceType | String | N | 设备类型 | 设备类型:IPC、NVR |
deviceProtocol | String | N | 设备协议 | 设备协议:千里眼协议、国标协议 |
deviceAddress | String | N | 设备所在位置 |
nvrInfo
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
deviceId | String | NVR设备通道编码 | |
deviceName | String | NVR通道名称 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": [
{
"deviceId": "gb_67793971881318000003",
"deviceName": "nvrsheb95",
"createTime": 1721902314000,
"camModelName": "GB",
"deviceStatus": 2,
"deviceSwitch": 1,
"deviceLatitude": "",
"deviceLongitude": "",
"deviceType": "nvr",
"deviceProtocol": "国标协议",
"nvrInfo": {
"deviceId": "67793971881188000164",
"deviceName": "nvrsheb9"
}
},
{
"deviceId": "gb_67793971881318000004",
"deviceName": "nvrsheb96",
"createTime": 1721902314000,
"camModelName": "GB",
"deviceStatus": 2,
"deviceSwitch": 1,
"deviceLatitude": "",
"deviceLongitude": "",
"deviceType": "nvr",
"deviceProtocol": "国标协议",
"nvrInfo": {
"deviceId": "67793971881188000164",
"deviceName": "nvrsheb9"
}
}
],
"total": 95,
"page": 1,
"pageSize": 2
}
获取组织机构或子节点下设备列表
接口功能
获取组织机构,分页获取子节点设备列表
请求地址
https://open.qly.cmviot.cn/v3/open/api/node/tree
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
queryType | int | Y | 查询类型 | 0-节点,1-设备 |
nodeId | String | N | 节点编码 | 1:为空时查询根节点的子节点 2:传入叶子节点时查询节点下设备列表 |
deviceId | String | N | 设备 mac | 1:单传设备 mac 查询设备绑定的节点信息 2:设备只支持查询绑定的父节点 |
up | int | N | 查询方向 | 默认向下查询,1-向上查询,只适用于查询父节点 |
page | int | N | 页码,默认 1 | 仅叶子节点查询设备列表使用 |
pageSize | int | N | 分页大小,默认 10,最大为 100 | 仅叶子节点查询设备列表使用 |
queryRegion | String | N | 下级企业 region | 只通过 region 查询时,默认返回该企业的根节点信息。如果 up 传 1(即向上查询)就查询该企业在上级企业的虚拟节点信息(必须保证级联关系为单链路,且最上级为应开平台企业,否则返回无权限)。 |
参数组合说明
TIP
1.三个参数都不传:查询根节点的下层节点 2.传了 deviceId,不传其他参数,只查询设备的父节点
查询目的 | nodeId | deviceId | up | queryType | queryRegion |
---|---|---|---|---|---|
根据最底层节点查询设备信息 | √ | × | × | 1 | × |
查询下级组织架构节点 | √ | × | × | 0 | × |
根据设备查询上级节点 | × | √ | × | 0 | × |
根据节点查询上级节点 | √ | × | √ | 0 | × |
根据 queryRegion 查询该企业根节点(用户可根据该根节点向下查询) | × | × | × | 0 | √ |
根据 queryRegion 查询该企业在上级企业对应的虚拟节点(用户可根据该根虚拟节点向上向下查询) | × | × | √ | 0 | √ |
子节点列表响应参数说明
参数名称 | 参数类型 | 说明 | 备注 |
---|---|---|---|
nodeId | String | 节点编码 | |
nodeName | String | 节点名称 | |
parentId | String | 父节点编码 | |
hasParent | int | 是否含有父节点 | 0-否,1-是 |
hasChild | int | 是否含有子节点 | 0-否,1-是 |
region | String | 下级企业 reigon | 当节点是下级级联企业根节点对应的虚拟节点时返回 |
叶子节点设备列表(分页)参数说明
参数名称 | 参数类型 | 说明 | 备注 |
---|---|---|---|
deviceId | String | 设备 mac | |
deviceName | String | 设备名称 | |
createTime | long | 设备绑定时间 |
节点和设备详细信息模糊搜索接口
接口功能
根据节点和设备详细信息模糊搜索。
请求地址
https://open.qly.cmviot.cn/v3/open/api/store/device/detail/list
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
storeId | String | Y | 节点 ID | |
queryType | Interger | N | 查询类型 | 1-节点名,2-摄像头名 |
queryKeyword | String | N | 查询关键字 | 当【查询类型】为 1 时,根据【查询关键字】模糊匹配节点名称,只查询叶子节点,然后根据匹配出的叶子节点,查询出叶子节点下的设备。当【查询类型】为 2 时,根据【查询关键字】模糊匹配设备名称,查询出设备。当【查询类型】为 其他值时,该条件无效。 |
pageSize | Interger | N | 每页记录数 | 查询的设备数量分页查询,每页记录数,默认为 10,最大为 500 |
page | Interger | N | 页码 | 查询的设备数量分页查询,页码,默认为 1 |
请求内容
示例
{
"queryType": 0,
"queryKeyword": "test",
"storeId": "1003170964989689900"
}
响应参数
参数名称 | 参数类型 | 是否必须 | 参数含义 | 说明 |
---|---|---|---|---|
storeId | String | Y | 节点 ID | |
storeName | String | Y | 节点名称 | |
parentId | String | N | 父节点的 ID | |
hasParent | Interger | Y | 是否含有父节点 | 0-否,1-是 |
hasChild | Interger | Y | 是否含有子节点 | 0-否,1-是 |
deviceDetails | List<DeviceDetail> | N | 节点下的设备列表称 |
DeviceDetail
参数名称 | 参数类型 | 是否必须 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备 ID | |
deviceName | String | Y | 设备名称 | |
deviceImei | String | N | 设备 imei | |
deviceSwitch | Interger | Y | 设备开关状态 | 0-关,1-开 |
deviceStatus | Interger | Y | 设备在线状态 | 0-否,1-是 |
camModelName | String | Y | 设备型号 | |
storeId | String | Y | 设备所在节点 ID | |
storeName | String | Y | 设备所在节点名称 | |
deviceLatitude | String | N | 设备位置维度 | |
deviceLongitude | String | N | 设备位置经度 | |
hasPackage | Interger | N | 设备套餐 | 1-关联套餐; 0-未关联套餐 |
virtualDevice | Interger | N | 设备是否级联 | 1-开启级联; 0-关闭级联 |
videoShareStatus | Interger | N | 视频是否开启共享 | 1-开启共享; 0-关闭共享 |
nvrInfo | object | N | 通道设备信息 | |
deviceType | String | N | 设备类型 | 设备类型:IPC、NVR |
deviceProtocol | String | N | 设备协议 | 设备协议:千里眼协议、国标协议 |
nvrInfo
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
deviceId | String | NVR设备通道编码 | |
deviceName | String | NVR通道名称 |
响应码说明
响应码 | 消息 | 说明 |
---|---|---|
000000 | 成功 | 说明 |
返回数据示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"storeId": "1003170964989689900",
"storeName": "TEST",
"parentId": "1003170964989689900",
"hasParent": 1,
"hasChild": 0,
"deviceDetails": [
{
"deviceId": "gb_67793971881318000163",
"deviceName": "nvrsheb11",
"deviceSwitch": 1,
"deviceStatus": 2,
"camModelName": "GB",
"storeId": "1124195908992839680",
"storeName": "下下级1",
"deviceLatitude": "",
"deviceLongitude": "",
"hasPackage": 0,
"virtualDevice": 0,
"nvrInfo": {
"deviceId": "67793971881188000147",
"deviceName": "nvrsheb1"
},
"deviceType": "nvr",
"deviceProtocol": "国标协议"
},
{
"deviceId": "gb_67793971881318000164",
"deviceName": "nvr通道名称2/",
"deviceSwitch": 1,
"deviceStatus": 2,
"camModelName": "GB",
"storeId": "1124195908992839680",
"storeName": "下下级1",
"deviceLatitude": "",
"deviceLongitude": "",
"hasPackage": 0,
"virtualDevice": 0,
"nvrInfo": {
"deviceId": "67793971881188000147",
"deviceName": "nvrsheb1"
},
"deviceType": "nvr",
"deviceProtocol": "国标协议"
}
]
}
}
获取设备详细信息
接口功能
根据 deviceId 获取该设备的详细信息。
请求地址
https://open.qly.cmviot.cn/v3/open/api/device/info
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备 ID,查询多个 id 时以逗号拼接 |
请求内容
示例
{"deviceId":"xxxxS_d8gh390"}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
resultCode | String | 响应码 | 参考响应码定义 |
resultMsg | String | 响应描述 | |
data | String | 响应数据 |
data 数据模型
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
appId | String | 开放应用 appiD | |
deviceId | String | 设备 id | |
deviceName | String | 设备名称 | |
deviceImei | String | 设备 imei | |
deviceSwitch | int | 设备开关状态 | 0:关,1:开 |
deviceStatus | int | 设备在离线状态 | 0:离线,1:在线 |
createTime | long | 创建时间 | 13 位毫秒时间戳 |
modifyTime | long | 修改时间 | 13 位毫秒时间戳 |
camModelName | String | 设备型号 | |
storeId | String | 设备所在节点 ID | |
storeName | String | 设备所在节点名称 | |
hdVideo | int | 高标清视频状态, 0:关,1:开 | |
volumeMute | int | 麦克风开关状态, 0:关,1:开 | |
statusLight | int | 设备指示灯状态, 0:关,1:开 | |
nightVision | int | 夜视开关状态, 0:关,1:开, 2:自动 | |
deviceLongitude | String | 设备经度 | |
deviceLatitude | String | 设备纬度 | |
deviceAddress | String | 设备位置 | |
hasPackage | Boolean | 是否有绑定套餐 | true:有;false:没有 |
virtualDevice | int | 是否级联设备 | 0:否、1:是 |
videoShareStatus | int | 视频共享状态 | 0:不共享、1:共享 (如果设备不是级联设备,则该值不返回) |
accessTime | Long | 设备接入时间 | 10 位时间戳 |
packageEffectiveInfo | List | ||
nvrInfo | object | 本设备所属的NVR设备信息。非NVR下的通道设备,不会返回该参数 | |
deviceType | String | 设备类型 | 设备类型:IPC、NVR |
deviceProtocol | String | 设备协议 | 设备协议:千里眼协议、国标协议 |
platformID | int | 底座ID信息 | 视联网设备,ID值为20或501;其余ID值,非视联网设备 |
packageEffectiveInfo 参数详情
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
packageName | String | 套餐名 | |
packageEffectiveTime | Long | 套餐生效时间 13 位时间戳 |
nvrInfo
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
deviceId | String | NVR设备通道编码 | |
deviceName | String | NVR通道名称 |
返回数据示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": [
{
"appId": "",
"deviceId": "gb_67793971881318000164",
"deviceName": "nvr通道名称2/",
"deviceSwitch": 1,
"deviceStatus": 2,
"createTime": 1721875608000,
"modifyTime": 1722302864000,
"camModelName": "GB",
"deviceLatitude": "",
"deviceLongitude": "",
"storeId": "1124195908992839680",
"storeName": "下下级1",
"virtualDevice": 0,
"deviceAddress": "",
"hasPackage": false,
"packageEffectiveInfo": [
],
"deviceType": "",
"deviceProtocol": "",
"nvrInfo": {
"deviceId": "67793971881188000147",
"deviceName": "nvr通道名称2/"
}
}
]
}
获取摄像机实时缩略图
接口功能
根据 deviceid 获取该设备的实时缩略图。
请求地址
https://open.qly.cmviot.cn/v3/open/api/camera/thumbnail/realtime
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备 ID | |
channelId | String | N | 通道 ID | 0:720p |
resolution | Int | N | 缩略图分辨率档位,支持3个档位,0、1、2 0,代表480p,分辨率为640x480 1,代表720p,分辨率为1280x720 2,代表1080p,分辨率为1920x1080 | 本参数未传,按照默认大小返回。仅接入视联网底座的设备支持本参数,其他底座仅支持默认大小 |
请求示例
{"deviceId":"xxxxS_de16b0"}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
resultCode | String | 响应码 | 参考响应码定义 |
resultMsg | String | 响应描述 | |
data | String | 响应数据 | 响应数据,实时缩略图地址 |
data 数据模型
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
url | String | 缩略图下载链接 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"url": "http://oss-open.qly.cmviot.cn/andmu/open/realtime/thumbnail/xxxxS_0012172a89d0/1570763006198.jpg?e=1570766606&token=WzQp4Ku4KwUpRz2tVysMualpmiBe9o5n-xQ6-Vyz:AwSpVjFYbU7grKpOwUPyTV4JZ3g="
}
}
批量获取设备历史缩略图
接口功能
根据 deviceId 和时间戳批量获取设备的历史缩略图。
请求地址
https://open.qly.cmviot.cn/v3/open/api/camera/screenshot/batch
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
captureRequest | List<CaptureInfo> | Y | 截图信息列表 | 最大数量10 |
CaptureInfo对象模型
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备ID | |
captureTime | long | Y | 缩略图时间戳 | 13位毫秒 |
请求示例
{
"captureRequest": [
{
"deviceId": "xxxxS_48e533a5efc5",
"captureTime": 1567146061000
},
{
"deviceId": "xxxxS_48e533a5ec2e",
"captureTime": 156714062000
}
]
}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
resultCode | String | 响应码 | 参考响应码定义 |
resultMsg | String | 响应描述 | |
data | String | 响应数据 | 响应数据,历史缩略图信息 |
data 数据模型
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
code | int | 结果码 | 1获取成功,-1无存储,-2非法设备 |
screenshotUrl | String | 缩略图链接 | 如果获取失败,则为空 |
deviceId | String | 设备ID | |
captureTime | long | 缩略图时间戳 | 13位毫秒 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": [
{
"code": 1,
"screenshotUrl": "http://oss-open.qly.cmviot.cn/andmu/open/realtime/thumbnail/xxxxS_0012172a89d0/1570763006198.jpg?e=1570763006&token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"deviceId": "xxxxS_48e533a5efc5",
"captureTime": 1567146061000
},
{
"code": -1,
"screenshotUrl": "",
"deviceId": "xxxxS_48e533a5ec2e",
"captureTime": 156714062000
}
]
}
获取设备剪辑列表
接口功能
根据 deviceId 分页获取该设备的剪辑列表信息。
请求地址
https://open.qly.cmviot.cn/v3/open/api/device/clip/list
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备 ID(MAC 地址) | 设备 ID(MAC 地址)6 为 16 进制设备 mac 地址,大小写都可以,国标编码必带 gb_前缀 |
pageSize | int | N | 默认为 10,最大为 100, pageSize=10 | |
lastClipTime | long | Y | 上一次 clip 的时间戳 | 首次传当前时间戳 |
请求内容
示例
{
"deviceId":"xxxxS_12341234adf",
"lastClipTime":"16789887676"
}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
list | List | 剪辑视频列表 | 返回剪辑 Video 的列表 |
pageSize | String | 每页大小 | 最大为 100 |
deviceId | String | 设备 Mac | |
lastClipTime | String | 时间戳毫秒 | |
hasMore | boolean | 是否有下一页 | true: 有下一页;false: 没有下一页 |
Video 数据模型
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
id | String | 剪辑视频 ID | |
deviceId | String | 设备 Mac | |
region | String | 机房信息 | 国标/融合类型设备无该字段 |
name | String | 剪辑视频名称 | |
thumbnailUrl | String | 剪辑视频缩略图地址 | |
downloadUrl | String | 剪辑视频下载地址 | http://www.test.com/cds/dailymotion3.mp4 |
duration | String | 剪辑视频时长 | 视频的长度(单位:秒) |
size | String | 剪辑视频文件大小 | 单位 byte, 1KB=1024B |
downUrl | String | 文件操作地址 | 国标/融合类型设备无该字段 |
createTime | String | 文件创建时间 | 示例:1356598024000 |
channelId | String | 通道 ID | 只有国标/融合类型设备有该字段 |
返回数据示例
{
"resultCode": "000000",
"resultMsg": "成功"
}
获取各个节点下设备总量&在线数量
接口功能
支持统计各个节点下设备总量&在线数量,支持统计下级级联企业设备
请求地址
https://open.qly.cmviot.cn/v3/open/api/node/online/stastics
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
storeId | String | N | 节点 id | 不传该字段会根据 region 查询整个企业的数据。注意:国标编码必带 gb_前缀 |
请求内容
示例
{
"storeId":"63445243523452345347123"
}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
storeId | String | 节点 id | |
total | int | 设备总量 | |
online | int | 在线总数 | |
offline | int | 离线总数 |
返回数据示例
{
"resultCode": "000000",
"resultMsg": "成功"
}
修改设备设置
接口功能
根据 deviceId 修改摄像机设置。
请求地址
https://open.qly.cmviot.cn/v3/open/api/device/control
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备 ID | |
deviceSwitch | int | N | 摄像机开关 | 0.关;1.开 |
deviceName | String | N | 设备名称 | |
hdVideo | int | N | 摄像头高清视频开关 | 0.关;1.开 |
volumeMute | int | N | 摄像头麦克风开关 | 0.关;1.开 |
statusLight | int | N | 摄像头状态指示灯 | 0.关;1.开 |
nightVision | int | N | 摄像头夜视开关 | 0.关;1.开,2.自动 |
cameraImageRotate | int | N | 旋转图像 180 度 | 0.不旋;1.旋转 180° |
soundSensitivity | int | N | 声音灵敏度 | 1-5 |
motionSensitivity | int | N | 动作灵敏度 | 1-5 |
deviceLatitude | string | N | 设备位置维度 | |
deviceLongitude | string | N | 设备位置经度 | |
deviceLocation | string | N | 设备位置 |
请求内容
示例
{
"switch":"on",
"deviceName":"xxx",
"wifiName":"xxx",
"wifiPassword":"xxx"
}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
resultCode | String | 响应码 | 参考响应码定义 |
resultMsg | String | 响应描述 |
返回数据示例
{
"resultCode": "000000",
"resultMsg": "成功"
}
获取摄像机视频播放WebSDK链接
接口功能
获取摄像机视频播放 WebSDK 链接,调用 WebSDK 播放视频。
重要说明
收费说明:调用该接口,请确保接口调用次数和监控集成服务包路数均充足
扣除说明:调用本接口一次,若设备ID是本月首次请求,将扣除接口调用次数1次、扣除监控集成服务包路数1路;若设备ID是本月重复请求的,仅扣除接口调用次数1次;
重置说明:每月末清空已请求的设备ID列表;每月1号起,应用下已请求设备ID列表为空,重新记录。
- PC端集成建议操作系统windows10以上,浏览器chrome 117 以上
- WebSdk H5兼容性上,已支持设备型号为A21(本处指新增,默认接入视联网底座,历史设备请单独咨询),其他两款型号即将支持
- 其他设备是指不属于视联网设备的其他IPC设备(不包含非视频类设备)
- 小程序H5页面集成方案、半屏/跳转方案均不支持
请求地址
https://open.qly.cmviot.cn/v3/open/api/websdk/player
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备 ID | |
endTime | long | N | 失效时间 | 大于当前时间的 13 位毫秒时间戳 |
请求示例
{"deviceId":"xxxxS_de16b0","endTime":1567146061000}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
resultCode | String | 响应码 | 参考响应码定义 |
resultMsg | String | 响应描述 | |
data | object | 响应数据 |
data 数据模型
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
url | String | 拉取直播流的 url | 使用一次或到达失效时间后失效 |
expiresIn | int | 链接失效时间 | 单位:秒 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"expiresIn": 300,
"url": "http://open.qly.cmviot.cn/websdk/player/47abe8367a7b2a8ca093cffa2c59ba91"
}
}
WebSdk播放器页面在电脑端浏览器上的功能说明
功能名称 | 默认支持 | 功能依赖 | 备注 |
---|---|---|---|
直播 | 均支持 | 设备在线 | 访问本链接,便进入直播模式 |
直播-云台控制-上下左右 | 需设备支持云台功能 | 设备在线且支持本能力 | 国标设备均展示该控件,千里眼私有协议设备的话,不具备本能力的不展示云台控件 |
直播-云台控制-缩放变倍 | 需设备支持本能力 | 设备在线且支持本能力 | 仅国标设备均展示该控件(是否生效以设备能力为准) |
直播-云台控制-焦距调节 | 需设备支持本能力 | 设备在线且支持本能力 | 仅国标设备均展示该控件(是否生效以设备能力为准) |
直播-云台控制-光圈调节 | 需设备支持本能力 | 设备在线且支持本能力 | 镜头光圈调节,仅国标设备均展示该控件(是否生效以设备能力为准) |
直播-云台控制-预置点设置 | 需设备支持本能力 | 设备在线且支持本能力 | 支持查看预置点、新增、编辑、删除预置点 仅国标设备均展示该控件(是否生效以设备能力为准) |
直播-云台控制-巡航路线 | 需设备支持本能力 | 设备在线且支持本能力 | 支持查看、新增、编辑、删除。 仅国标设备均展示该控件(是否生效以设备能力为准) |
直播-语音对讲 | 需设备支持本能力 | 设备在线且支持本能力 | 国标设备均展示该控件,千里眼私有协议设备的话,不具备能力则不展示 |
直播-清晰度切换 | 需设备支持本能力 | 设备在线且支持本能力 | 可切换高清、标清,国标设备均展示该控件,千里眼私有协议设备的话,不具备能力则不展示 |
录像文件列表-云存 | 均支持 | 设备绑定云存套餐 | 默认云存,若设备无云存,尝试播放设备本地存储 |
录像文件列表-本地存储 | 需设备支持该项能力 | 设备支持本地存储 | 本地存储若无文件,则播放器进度条无录像文件,可再切回云存 |
录像文件-告警片段 | 需有告警数据 | 设备绑定AI套餐或是智能终端 | |
录像-时间轴间隔 | 均支持 | 设备有存储数据 | 回放时间轴显示的时间跨度,包含 5 分钟、1 个小时、24 小时,3 种不同时间跨度 |
录像-倍速播放 | 云存支持,本地存储不支持 | 回看云存文件时,展示本控件 | 回看云存时,默认1倍速,支持有:0.5、1、2、4、8、16、32 |
声音开/关 | 均支持 | 均支持 | 播放器上的声音开关 |
画面缩放 | 均支持 | 均支持 | 最大支持放大到5倍 |
全屏 | 均支持 | 均支持 | |
截图 | 均支持 | 均支持 |
千里眼私有协议-不支持对讲的设备,在电脑端浏览器访问WebSdk播放器,如下图: 国标协议的设备,在电脑端浏览器访问WebSdk播放器,如下图:
WebSdk播放器页面在移动端浏览器上的功能说明
移动端画面空间有限,需要更多控件时,请手机横屏(务必关闭【竖排方向锁定】)。
功能名称 | 说明 | 横屏是否支持 | 竖屏是否支持 |
---|---|---|---|
直播 | 访问本链接,便进入直播模式 | 支持 | 支持 |
直播-云台控制-上下左右 | 国标设备均展示该控件,千里眼私有协议设备的话,不具备本能力的不展示云台控件 | 支持 | 不支持 |
直播-语音对讲 | 国标设备均展示该控件,千里眼私有协议设备的话,不具备能力则不展示 | 支持 | 不支持 |
直播-清晰度切换 | 可切换高清、标清,国标设备均展示该控件,千里眼私有协议设备的话,不具备能力则不展示 | 支持 | 不支持 |
录像文件列表-云存 | 默认云存,若设备无云存,尝试播放设备本地存储,支持切本地存储 | 支持 | 支持(仅看,切本地需横屏) |
录像文件列表-本地存储 | 本地存储若无文件,则播放器进度条无录像文件 | 支持 | 不支持 |
录像文件-告警片段 | 设备有告警数据,录像文件以明显颜色标记事件位置,设备需绑定AI套餐或是智能终端,并上报告警 | 支持 | 支持 |
声音开/关 | 均支持 | 均支持 | 播放器上的声音开关 |
全屏 | 均支持 | 均支持 | |
直播-云台控制-缩放 | 仅国标设备,才展示该控件(是否生效以设备能力为准) | 支持 | 不支持 |
直播-云台控制-焦点 | 仅国标设备,才展示该控件(是否生效以设备能力为准) | 支持 | 不支持 |
直播-云台控制-光圈调节 | 仅国标设备,才展示该控件(是否生效以设备能力为准) | 支持 | 不支持 |
直播-云台控制-步长调节 | 仅国标设备,才展示该控件(是否生效以设备能力为准)。务必确认,您的终端,是否具备该能力。 步长决定了云台在每次按键操作时移动的单位距离或角度,数值越大,云台移动的速度越快 | 支持 | 不支持 |
国标设备,在移动端浏览器访问WebSdk播放器,横屏如下图: 国标设备,在移动端浏览器访问WebSdk播放器,竖屏如下图:
获取摄像机纯视频播放WebSDK链接
接口功能
获取摄像机纯视频播放 WebSDK 链接,可以组合成多屏播放。
重要说明
收费说明:调用该接口,请确保接口调用次数和监控集成服务包路数均充足
扣除说明:调用本接口一次,若设备ID是本月首次请求,将扣除接口调用次数1次、扣除监控集成服务包路数1路;若设备ID是本月重复请求的,仅扣除接口调用次数1次;
重置说明:每月末清空已请求的设备ID列表;每月1号起,应用下已请求设备ID列表为空,重新记录。
- PC端集成建议操作系统windows10以上,浏览器chrome 117 以上
- WebSdk H5兼容性上,已支持设备型号为A21(本处指新增,默认接入视联网底座,历史设备请单独咨询),其他两款型号即将支持
- 其他设备是指不属于视联网设备的其他IPC设备(不包含非视频类设备)
- 小程序H5页面集成方案、半屏/跳转方案均不支持
请求地址
https://open.qly.cmviot.cn/v3/open/api/websdk/live
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备 ID | |
endTime | long | N | 播放失效时间 | 大于当前时间的 13 位毫秒时间戳 |
请求示例
{"deviceId":"xxxxS_de16b0"}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
resultCode | String | 响应码 | 参考响应码定义 |
resultMsg | String | 响应描述 | |
data | object | 响应数据 |
data 数据模型
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
url | String | 拉取纯直播流的 url | 使用一次或到达失效时间后失效 |
expiresIn | long | 链接失效时间 | 单位:秒 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"expiresIn": 300,
"url":"https://open.qly.cmviot.cn?websdk/player/7fb94858f9a7267a3f781c6297019b7a"
}
}
在电脑端浏览器访问本纯视频页面,只有画面,没有控件,展示如下图:
获取摄像机指定时间段回看WebSDK链接
接口功能
获取摄像机指定时间段回看 WebSDK 链接
重要说明
收费说明:调用该接口,请确保接口调用次数和监控集成服务包路数均充足
扣除说明:调用本接口一次,若设备ID是本月首次请求,将扣除接口调用次数1次、扣除监控集成服务包路数1路;若设备ID是本月重复请求的,仅扣除接口调用次数1次;
重置说明:每月末清空已请求的设备ID列表;每月1号起,应用下已请求设备ID列表为空,重新记录。
- PC端集成建议操作系统windows10以上,浏览器chrome 117 以上
- WebSdk H5兼容性上,已支持设备型号为A21(本处指新增,默认接入视联网底座,历史设备请单独咨询),其他两款型号即将支持
- 其他设备是指不属于视联网设备的其他IPC设备(不包含非视频类设备)
- 小程序H5页面集成方案、半屏/跳转方案均不支持
请求地址
https://open.qly.cmviot.cn/v3/open/api/websdk/playback
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceId | String | Y | 设备 ID | |
startTime | long | Y | 回放开始时间戳 | 13 位毫秒,需早于当前时间 |
endTime | long | N | 回放结束时间戳 | 13 位毫秒,需晚于开始时间 |
请求示例
{
"deviceId":"xxxxS_dasofmasfm",
"startTime":1719763200000,
"endTime":1719849600000
}
响应参数
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
url | String | 播放器链接 | |
expiresIn | int | 失效时间 | 单位秒 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"expiresIn": 300,
"url": "http://hostname:port/websdk/player/47abe8367a7b2a8ca093cffa2c59ba91?open=1"
}
}
在电脑端浏览器访问本链接,将从开始时间播放回看,支持切换为直播,展示如下图:
获取指定设备录像文件列表
接口功能
获取指定设备录像文件列表,本接口仅支持:设备接入底座是视联网底座。
请求地址
https://open.qly.cmviot.cn/v3/open/api/device/record/list
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceSn | String | Y | 设备ID | |
storageType | String | Y | 存储类型 | 0:云存储 1:设备存储 |
streamType | int | Y | 码流类型 | 1:主码流,2:辅码流1,3:辅码流2 |
startTime | Long | Y | 查询开始时间 | 13位时间戳,必填 |
endTime | Long | Y | 查询结束时间 | 13位时间戳,必填,需晚于开始时间 |
pageSize | int | N | 每次查询数量 | 默认100,最大100 |
sort | String | N | 排序 | 按录像开始时间排序:默认为1;1代表降序,2代表升序 |
sizeWidth | String | N | 缩略图宽度 | 默认320 |
sizeHeight | String | N | 缩略图高度 | 默认320 |
effectiveTime | Long | N | 缩略图地址有效时间 | 单位秒、默认600 |
channelId | int | N | 通道号 | 千里眼私有协议多通道、大华公有云协议设备、海康SDK、ehome、ISUP必传 |
recordType | int | Y | 录像类型 | 1:普通录像2:告警录像; |
alarmType | int | N | 告警类型 | 不传则返回所有告警类型(仅查询录像类型为告警录像时生效) |
urlNetworkType | int | N | 响应url地址网络类型 | 2=公网 |
请求示例
{
"deviceSn": "xx",
"storageType": "xx",
"streamType": 1,
"startTime": "xx",
"endTime": "xx",
"recordType": 1
}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
hasMore | int | 设备在当前机房 是否还有录像列表 | 1:是0:否 |
recordList | List<record> |
record数据模型
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
recordId | String | 录像id | 每次查询只返回一个机房的录像列表,最多返回100条录像 |
clusterId | String | 所在的集群ID | |
storageType | String | 存储类型 | 0:云存储 1:设备存储 |
recordType | int | 录像类型 | 1:普通录像2:告警录像 |
startTime | String | 录像片段开始时间 | |
endTime | String | 录像片段结束时间 | |
alarmType | int | 告警类型 | |
storagePolicy | int | 存储策略 | 0:标准(默认)1:低频2:归档 |
url | String | 录像缩略图地址 | |
expireTime | String | 失效时间,格式为13位毫秒时间戳 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"recordList": [
{
"recordId": "68ee4xxxxx00_0@1053",
"expireTime": "1752828211561",
"recordType": 1,
"storageType": "0",
"startTime": "1752822600000",
"storagePolicy": 0,
"clusterId": "fccxxxxxxxxxab",
"endTime": "1752823800000",
"url": "https://qh.cmqly.com:1443/fileProxy/loadThumbnail?p=bb8582b8adddac1cb71xxx69099f1fec9d5ff2a4738xxxxx3832cae1f2db0be117ff1527f45843371044062e65ecfcb1a31535931853c1feb86xxx03c51c1e0063ae050acee"
}
],
"hasMore": 0
}
}
获取单个文件链接
接口功能
获取单个文件链接,本接口仅支持:设备接入底座是视联网底座。
请求地址
https://open.qly.cmviot.cn/v3/open/api/device/record/link/single
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
deviceSn | String | Y | 设备ID | |
recordId | String | Y | 录像id | 获取录像列表接口响应报文中的recordId值 |
startTime | Long | N | 开始时间 | 格式为13位毫秒时间戳 |
endTime | Long | N | 结束时间 | 格式为13位毫秒时间戳,大于该录像的开始时间,startTime 不 为 空 时 ,endTime不能为空 |
dataType | String | N | 视频类型 | 1:视频,2:音频,3:音视频;默认为3 |
type | String | N | 传输格式 | RTSP 、 HLS 、 RTMP 、HTTP-FLV、VNSP |
videoEncode | String | N | 视频编码格式 | 0:H264,1:H265 |
audioEncode | String | N | 音频编码格式 | 0:aac,1:g711a |
effectiveTime | String | N | 拉流地址的有效时间(单位秒) | 默认为2小时,即7200秒 |
urlNetworkType | int | N | 响应url地址网络类型 | 2=公网 |
channelId | int | N | 通道号(从0开始) | 千里眼私有协议多通道、大华公有云协议设备、海康SDK、ehome、ISUP必传 |
请求示例
{
"deviceSn": "xx",
"recordId":"xxxxxx"
}
响应参数
参数名称 | 参数类型 | 参数含义 | 说明 |
---|---|---|---|
url | String | 拉流地址 | |
expireTime | String | 失效时间 | 格式为13位毫秒时间戳 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": {
"expireTime": "1752828363798",
"url": "rtsp://qh-mgc7.cmqly.com:554/openUrl/nsigtjxzxxxxxxxIxxxxiuH?beginTime=20250718T151001&endTime=20250718T152959&playBackMode=1"
}
}
获取企业NVR列表
接口功能
获取企业NVR列表
请求地址
https://open.qly.cmviot.cn/v3/open/api/region/nvr/list
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
page | int | N | 页数 | 不传默认为1 |
pageSize | int | N | 页码 | 不传默认为10,最大10 |
请求示例
{
"page":1,
"pageSize":10,
}
响应参数
响应数据模型是一个所有NVR设备的List,每List包含信息:deviceId(String、Y,NVR设备通道编码)、deviceName(String、Y、NVR通道名称)、channelList{每个通道的信息,包含deviceId(String、Y,通道编码)、deviceName(String、Y、通道名称}、deviceSwitch(设备开关状态,0:关,1:开)、deviceStatus(设备在线状态,0:离线,1:在线);
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
deviceId | String | NVR设备通道编码 | |
deviceName | String | NVR通道名称 | |
channelList | List<Channel> | 每个通道的信息 |
Channel对象说明
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
deviceId | String | 通道编码 | |
deviceName | String | 通道名称 | |
deviceSwitch | int | 设备开关状态 | 0:关,1:开 |
deviceStatus | int | 设备在线状态 | 0:离线,1:在线 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": [
{
"deviceId": "100049764",
"deviceName": "112这是一个超长长长长长长长长长长长长长长长长211名字",
"channelList": [
{
"deviceId": "100049764",
"deviceName": "112这是一个超长长长长长长长长长长长长长长长长211名字",
"deviceSwitch": 0,
"deviceStatus": 0
}
]
},
{
"deviceId": "",
"deviceName": "3333",
"channelList": [
{
"deviceId": "",
"deviceName": "3333",
"deviceSwitch": 0,
"deviceStatus": 0
}
]
}
],
"total": 51,
"page": 1,
"pageSize": 10
}
获取NVR详细信息
接口功能
获取NVR详细信息
请求地址
https://open.qly.cmviot.cn/v3/open/api/nvr/detail
请求方式
POST,需要鉴权
请求参数
参数名称 | 参数类型 | 是否必需 | 参数含义 | 说明 |
---|---|---|---|---|
nvrIds | String | Y | nvrId列表 | 支持多个,英文逗号隔开,最多10个 |
请求示例
{
"nvrIds":"839204213,21932341"
}
响应参数
响应中,每个NVR设备是一个List,每List包含信息:deviceId(String、Y,NVR设备通道编码)、deviceName(String、Y、NVR通道名称)、channelList{每个通道的信息,包含deviceId(String、Y,通道编码)、deviceName(String、Y、通道名称}、deviceSwitch(设备开关状态,0:关,1:开)、deviceStatus(设备在线状态,0:离线,1:在线);
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
deviceId | String | NVR设备通道编码 | |
deviceName | String | NVR通道名称 | |
channelList | List<Channel> | 每个通道的信息 |
Channel对象说明
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
deviceId | String | 通道编码 | |
deviceName | String | 通道名称 | |
deviceSwitch | int | 设备开关状态 | 0:关,1:开 |
deviceStatus | int | 设备在线状态 | 0:离线,1:在线 |
响应示例
{
"resultCode": "000000",
"resultMsg": "成功",
"data": [
[
{
"deviceId": "NVR001",
"deviceName": "NVR通道1",
"channelList": [
{
"deviceId": "CH001",
"deviceName": "通道1"
},
{
"deviceId": "CH002",
"deviceName": "通道2",
"deviceSwitch": 1,
" deviceStatus": 1
}
],
}
],
[
{
"deviceId": "NVR002",
"deviceName": "NVR通道2",
"channelList": [
{
"deviceId": "CH003",
"deviceName": "通道1"
},
{
"deviceId": "CH004",
"deviceName": "通道2"
}
],
}
]
]
}