接收终端用户托管的设备
接收终端用户托管的设备
乐橙 App 用户可以通过设备托管,将设备的权限(视频预览、语音对讲、录像回放、设备管理)托管给乐橙开放平台的开发者用户,用于设备的二次开发。开发者可以同时对多个终端账户设备集中管理;乐橙 App 用户掌握设备所属权、拥有设备的全部使用权限,并可以自主控制托管权限信息。

例如:B 端开发者开发「店铺管理系统」,各店铺设备属于门店乐橙 App 账号,店铺将设备托管给开放平台开发者账号后,开发者方可集成视频等能力。
授权模型见 授权模型:自有设备与用户设备。HTTP 接口索引见 设备管理 · 设备托管。
名词解释
- 乐橙 App 用户 / 终端用户:使用乐橙 App 绑定设备的用户,可将设备托管给开放平台开发者。
- 开放平台开发者:在乐橙云开放平台二次开发、集成云服务的客户。
基本流程

终端用户在乐橙 App 托管页完成授权,流程见上图;开发者侧按下列 HTTP 步骤对接。
前提
设置托管状态与两个列表接口需 管理员 accessToken。获取、有效期与刷新见 accessToken:获取管理员 token 与 管理 token:缓存、过期与刷新。
步骤
- 开发者在官网控制台开通托管服务后,获取托管链接。示例:
https://open.imou.com/h5/company/abcde12345678910。 - 若需终端用户托管时携带业务参数,并在托管完成时由平台回调给开发者,在托管链接中拼接
state(建议加密)。示例:https://open.imou.com/h5/company/abcde12345678910?state=weygfuygfbdfgfuysadknjhf12312312。将链接提供给指定终端用户。 - 终端用户访问链接完成托管。平台推送托管事件,
msgType为warrantInit;事件 body 中将state原样返回。报文见下文 托管事件。
设置与查询托管状态
- setDeviceAuthStatus:批量设置设备的托管状态:批量设置终端用户托管给开发者的设备状态。已拒绝可再次接受,已接受可再次拒绝;终端用户取消后无法再设置。目标状态为 accept 或 refuse;设备序列号列表最多 20 个(与 setDeviceAuthStatus 参数表一致);物模型通道托管时
productId必填;通道维度托管时channelId必填。 - deviceListByAuthStatus:分页获取指定状态的托管设备列表:
init终端用户发起,accept已接受,refuse已拒绝。 - authorizedDeviceList:分页获取已托管的设备详情:分页获取已托管设备详情。
收到 warrantInit 推送前,须已在 setMessageCallback 的 callbackFlag 中订阅托管相关类型(与 配置平台消息推送 一致);否则控制台流程走完也收不到 warrantInit。
收到 warrantInit 推送后,用 setDeviceAuthStatus 接受/拒绝,并用列表接口同步状态;无固定间隔要求。
托管事件
以下为授权消息推送报文示例。是否在消息回调中收到取决于 callbackFlag 订阅范围,见 配置平台消息推送。
warrantInit
终端用户托管设备给开发者后推送。
{
"warrantId": "146746972164984832",
"msgType": "warrantInit",
"phone": "158***404",
"appId": "lcdxxxxxxxxx",
"deviceList": [
{
"authority": "RecordReplay,Format",
"channelName": "TP1S-2113",
"deviceId": "TESTQWERXXXX",
"deviceName": "TP1S-2113",
"channelId": "0"
}
],
"remark": "",
"state": "qwetyewoewewyriuweyriwhd"
}
state 为托管链接中传递的参数,平台原样返回。
deviceAuthCancel
终端用户取消设备托管后推送。
{
"msgType": "deviceAuthCancel",
"appId": "lcdxxxxxxxxx",
"deviceList": [
{
"deviceId": "TESTQWERXXXX"
}
]
}
warrantModify
终端用户修改已托管设备权限后推送。此消息会推送该托管申请单下所有有权限的设备信息。
{
"warrantId": "146109321904787456",
"msgType": "warrantModify",
"phone": "18***096",
"appId": "lcdxxxxxxxxx",
"deviceList": [
{
"authority": "Format,Config,Siren,Ptz,WhiteLight,Alarm,Upgrade,Capture",
"deviceId": "TESTQWERXXXX",
"deviceName": "TP1S-4574",
"channelId": "0"
}
]
}
authorityRemove
终端用户解绑或转移设备后推送。operation:transferDeviceFrom 设备转移,unbindDevice 设备解绑。
{
"msgType": "authorityRemove",
"warrantId": "146690789022502912",
"appId": "lcdxxxxxxxxx",
"deviceId": "TESTQWERXXXX",
"operation": "unbindDevice"
}
权限
设备托管按设备维度分配权限。托管了某设备的指定权限后,开发者对该设备下所有通道拥有相同权限大类。
| 托管页面权限大类 | 权限描述 |
|---|---|
| 报警消息 | 设备告警消息查询 |
| 设备操作 | 设备配置、云台、抓图、升级、格式化 SD 卡 |
| 视频回放 | 云录像回放、本地录像回放 |
| 视频预览 | 实时预览、语音对讲 |
| 权限描述 | 权限标识 | 支持 API(可站内搜索接口名) |
|---|---|---|
| 设备告警消息查询 | Alarm | deleteAlarmMessage、getAlarmMessage、getAlarmMessageById |
| 设备配置权限 | Config | modifyDeviceName、setDeviceCameraStatus、refreshDeviceCover、controlDeviceWifi、currentDeviceWifi、deleteCollection、deleteDoorKey、deviceAlarmPlan、frameReverseStatus、generateSnapkey、getCollection、getCruiseConfig、getDeviceAlarmParam、getDeviceCameraStatus、getDevicePowerInfo、getDoorKeys、getHeatMapData、getHeatMapEnable、getOpenDoorRecord、getPreparation、getSnapkeyList、getSoundVolumeSize、modifyCollection、modifyDeviceAlarmPlan、modifyDeviceAlarmStatus、modifyFrameReverseStatus、openDoorRemote、queryDeviceOsd、queryLocalRecordPlan、queryLocalRecordStream、setCollection、setCruiseConfig、setDeviceAlarmRegion、setDeviceAlarmSensitivity、setDeviceOsd、setHeatMapEnable、setLocalRecordPlan、setLocalRecordPlanRules、setLocalRecordStream、setPreparation、setSoundVolumeSize、turnCollection、wakeUpDevice、wifiAround |
| 云台控制 | Ptz | controlLocationPTZ、controlMovePTZ、devicePTZInfo |
| 设备抓图 | Capture | setDeviceSnap、setDeviceSnapEnhanced |
| 设备升级 | Upgrade | deviceVersionList、upgradeDevice、upgradeProcessDevice |
| 格式化 SD 卡 | Format | deviceSdcardStatus、deviceStorage、recoverSDCard |
| 录像回放 | RecordReplay | openCloudRecord、queryCloudRecordBitmap、queryCloudRecordNum、queryCloudRecords、deleteCloudRecords、queryCloudRecordCallNum、unBindDeviceCloud、unUsedCloudList、getDeviceCloud、queryCloudRecordByToken、getCloudRecords、getRecordByLinkageId、deviceCloudList、queryLocalRecordBitmap、queryLocalRecordNum、queryLocalRecords |
| 实时预览 | Real | SDK 实时预览 |
| 语音对讲 | Talk | SDK 语音对讲 |
各端实现
服务端 HTTP
设置托管状态、按状态查询、分页获取已托管设备详情,请求地址在 https://openapi.lechange.cn/openapi/ 下。参数以各接口页为准。