CATALOG

芯步的智能硬件采用标准的HTTP接口协议,这意味着任何能发起网络请求的系统(如ERP、收银软件、自建后台)都可以直接向音箱推送语音文本,无需中间件转换。针对40W语音播报壁挂音箱,对接核心是调用设备控制接口,按规则生成签名,并封装包含播报内容的JSON命令。

以下从技术原理、接口规范、代码实现三个层面进行阐述。

1. 对接架构

整个对接采用请求-响应模式,业务流程如下:

sequenceDiagram
    participant User as 第三方系统
    participant API as 芯步开放API
    participant Device as 40W壁挂音箱

    User->>User: 计算签名(sign)和当前时间戳(ts)
    User->>API: POST /{AppId}/device/control/?sign={sign}&ts={ts}
    Note over User,API: Body: {"device":"设备ID", "order":{"play:gbk:16":"要播报的文本"}}
    API-->>User: 返回下发结果(成功/失败)
    API->>Device: 推送播报指令
    Device->>Device: 执行语音播报

2. 核心接口对接规范

对接主要涉及设备控制接口,具体规范和参数如下

  • 接口地址https://api.thingboot.com/{AppId}/device/control/

  • 请求方式POST, Content-Type: application/json

  • 签名算法 (sign)sign = md5( md5(AppSecret) + ts )。即将AppSecret进行MD5加密后,拼接时间戳字符串,再整体做一次MD5(32位小写)

  • 关键参数说明

参数位置参数名类型描述
URL路径AppIdString平台分配的应用标识,在控制台获取
URL参数signString接口调用签名,用于身份验证
URL参数tsInt当前Unix时间戳(秒)
BodydeviceString音箱设备ID,支持批量(逗号分隔),如 "123,456"
BodyorderObject指令对象,播报命令为 {"play:gbk:16": "文本"}

3. 详细对接步骤

3.1 前置准备:获取凭证和设备ID

首先需要获取AppId和AppSecret,同时确保音箱在线。

  1. 登录芯步

  2. 若未注册,先完成账号注册并登录,进入“开发设置”页面。

  3. 在“开发设置”中可获取AppIdAppSecret。这是后续所有接口调用的凭证,需妥善保管

  4. 在“设备管理”页面或通过接口拉取,获取目标40W壁挂音箱的device ID。

3.2 核心难点:计算签名 (sign)

为保证接口安全,所有请求需携带动态签名。以Python为例,签名生成方式如下:

注意:md5()结果需为32位十六进制小写字符串

3.3 向音箱推送文本示例

生成签名后,即可组装请求体向指定音箱推送文本。命令格式为{"play:gbk:16":"您要播报的内容"}

请求体示例

以下为各语言的代码示例,实际开发时请替换代码中的AppIdAppSecretdevice为实际值。

Python 代码示例

Java 代码示例 (使用 Unirest)

Shell (cURL) 代码示例

注:代码中的order值为完整的JSON对象字符串

4. 扩展功能和需要注意的点

4.1 播报参数调节

除了基本文本推送,接口还可通过order对象调节播报效果,实现更丰富的提醒功能

  • 音量控制{"volume": 80} (范围0-100)

  • 语速控制{"speed": 60} (范围0-100)

  • 音色切换{"voice": 1} 切换男/女声

  • 播放提示音{"ring": 3} 先播放预设铃声再播报

组合指令示例

4.2 实施

  1. 网络环境:40W壁挂音箱使用2.4G WiFi联网,网络需稳定。支持多WIFI配置,可设置5组SSID自动切换

  2. 批量播报:同一指令需要推送到多个音箱时,device参数直接用英文逗号拼接多个设备ID即可,例如"1878,1879,1880"

  3. 私有化部署:若场景对网络延迟或数据安全要求比较高,该产品支持私有化部署方案,可将API部署于本地局域网

  4. 错误处理:开发时应增加异常捕获,对接口返回的非200状态码及业务错误码进行相应处理,例如签名失效时重新计算。

  5. 特殊字符处理:播报文本中若包含引号等特殊字符,需要进行JSON转义。