[案例分享] 云平台中继位置服务开发指南

1. 开发概述

第三方位置服务应用与华为云平台实现云平台中继数据对接需要实现以下4点功能:

1. 对云平台配置的validator的匹配校验;

2. 对终端位置数据中secret的匹配校验;

3. 对终端数据的解析,计算终端位置;

4. 对终端数据实现增值功能:地图编辑,客流分析,用户画像,位置热图,室内导航等。

locationSettings-1.jpg

2. 开发实现的业务流程

2.1 validator校验

validator是华为云平台随机生成的校验码,UUID格式,用于华为云平台对位置应用的安全校验。对接时,开发者在华为云平台上生成validator,或者向云平台管理员申请validator;并将目标URL和secret配置在云平台上。在发送数据前,云平台会校验第三方位置服务应用返回的validator是否匹配。如果不匹配则不会发送终端数据。

校验方式是云平台向目标URL发起GET请求,校验返回值。

假设生成的UUID为" xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",那GET方法返回的应该是一个JSON体,内容为:{"validator":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}。

开发者开发结束后可以进行自校验:

locationDevelop-2.png

2.2 secret校验

secret是第三方位置应用提供的校验字,16进制字段,长度最长32,用于第三方位置应用对云平台数据的校验。对接时,开发者要在华为云平台配置secret,或将URL和secret告知云平台管理员。

若第三方位置应用收到的数据secret不匹配,说明云平台身份存在问题,应用可选择丢弃此数据。

校验方式是对云平台上报JSON数据中secret字段进行检查。

2.3 数据解析

通过validator的校验后,若AP开启位置信息上报功能且有终端在线,则进入终端位置数据发送和解析阶段。 若第三方位置应用收到的数据secret不匹配,说明云平台身份存在问题,应用可选择丢弃此数据。

云平台通过HTTPS POST方式向目标URL发送定位数据;第三方应用将JSON数据解析并计算定位结果。

请求体中的终端位置数据采用如下JSON格式:

{

"data": [

{

"apMac": "4C:FA:CA:D8:23:A0",

"terminalList": [

{

"terminalMac": "88:19:08:F1:88:45",

"rssi": -68,

"timestamp": 1557460789000

},

{

"terminalMac": "90:2E:1C:6A:2A:57",

"rssi": -57,

"timestamp": 1557460789000

}

]

}

],

"secret": "Test@1234",

"type": "ApLocation"

}

上述请求示例中的字段说明如下:

截图.PNG

2.4 增值业务

开发者按业务需求实现地图编辑,客流分析,用户画像,位置热图,室内导航等功能。具体功能由开发者实现。

3. 对接常见数据

3.1 终端上报数据少

AP会对多个信道进行扫描,且扫描时间过长会影响正常WIFI业务体验。

解决办法:1、增加终端的活跃性(播放视频,长Ping等)。2、提高AP的扫描时长,减少扫描新倒数。

在“站点配置-AP-射频-高级配置”下修改配置:

locationDevelop-3.png

3.2 无终端信息上报

解决办法:

1. 勾选上报终端位置信息。

locationDevelop-4.png

2. SSID信号可以连接公网。

locationDevelop-5.png

3. 云平台与位置应用互通。