社区人脸门禁
概述
本文以人脸门禁为例,结合阿里云IoT数字社区平台和智能通行服务API 2.0,介绍如何在社区使用场景下,使用一个项目管理多个小区的门禁设备。
接入流程:权限下发
接入准备:请参考数字社区平台接入准备,创建SI项目并获取访问接口所需的appKey和appSecret。
社区管理:创建小区并获取小区的鉴权token,即cloudToken。
cloudToken代表了小区的身份,用于在一个SI项目内实现多个小区的权限认证和数据隔离。
用户管理:导入用户账号并把用户及其人脸底库图片绑定到小区的用户组内。
用户组是用于管理和组织用户权限的逻辑概念。在本文的使用流程中,用户组是属于小区的。
用户账号没有小区隔离,一个账号可以跨小区使用。
设备管理:把人脸门禁设备绑定到小区的设备组内。
设备组是用于管理和组织设备的逻辑概念。在本文的使用流程中,设备组是属于小区的。
设备有小区隔离,一个设备只能绑定到一个小区。
关系管理:绑定用户组和设备组,实现关联关系的自动下发。
接口说明:社区管理
本节涉及的API,请参考DEMO源代码中的CommunityManager类。参考文档:数字社区平台小区管理
获取POID列表:根据查询关键词搜索高德地图的POI,相当于在高德地图的搜索框内输入文本,搜索地点。
本文的场景下一般输入小区名字作为查询关键词。
创建小区:使用第1步查到的POI相关信息,创建小区,一般情况下取第一条结果即可。
获取cloudToken:小区创建成功并审核通过以后,使用小区ID即可获得代表小区身份的cloudToken,用于后续接口调用。
cloudToken有效期一般是2小时,具体以接口返回的expireIn字段为准。
cloudToken需要定期刷新或更新,具体请参考API文档。
接口说明:用户管理
本节涉及的API,请参考DEMO源代码中的UserManager类。参考文档:智能通行服务API 2.0
导入账号:把接入方用户账号的唯一标识作为IoT平台的openId,导入到IoT平台。
openId的有效范围是SI项目,因此一个openId可以在多个小区中使用,代表了一个账号在多个小区中的权限数据。
保存人脸:保存人脸底库图片,用于下发到设备上,实现人脸识别。
绑定到用户组:绑定用户和用户组。
接口说明:设备管理
本节涉及的API,请参考DEMO源代码中的DeviceManager类。参考文档:智能通行服务API 2.0
查询设备信息:根据设备设备证书(ProductKey、DeviceName、DeviceSecret)中的productKey和deviceName,查询设备的iotId,即设备的唯一标识。
绑定到小区:一个设备只能绑定一个小区。
绑定到设备组:绑定设备和设备组。
接口说明:关系管理
本节涉及的API,请参考DEMO源代码中的RelationManager类。参考文档:智能通行服务API 2.0
绑定用户组和设备组:绑定完成后,人脸和设备就建立了关联关系,人脸会通过云端的下发引擎,自动下发到对应的设备上。
查询下发状态:查询人脸权限的下发状态。
接入流程:数据订阅
当用户通过人脸识别门禁设备刷脸时,设备会通过与云端的连接通道(MQTT)把消息上报到物联网平台,通过平台的数据总线把数据推送给上层应用。关于上层应用如何实时订阅此类消息,请参考DEMO源代码中的DopDataListener类。
DEMO
开源项目建设中,暂请联系阿里技术小二获取DEMO源代码。
如遇接口返回403,请留存返回报文并联系阿里技术小二处理。