接入说明
概述
本文档中的家长端专指图灵IOT微信公众号相关服务(以下简称 图灵IOT),图灵IOT主要是由 图灵IOT服务、MQTT推送服务组成,主要实现设备端与微信家长端(载体为微信公众号)的通信交互功能。
微信家长端主要功能包括:查看设备状态、微信点播歌曲至设备、设备与微信语音对讲、设备家庭圈设置以及社区功能,微信家长端以微信公众号为载体,实现其完整的功能。设备端需要按照文档接入,保证家长端功能的正确性与完整性。
图灵机器人提供了一个功能完善的微信公众号入口,您可以选择直接使用该公众号作为设备家长端使用,该公众号后续会加强内容运营,展现丰富的内容资源。
客户也可以使用自己的公众号作为家长端使用,按照文档接入即可查看详细。
特殊说明
当客户使用自己的公众号作为家长端使用时,需要注意:微信公众号临时素材管理接口针对每个公众号有每天上传和下载的次数限制。(具体参照微信文档-接口调用频次限制说明:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433744592)。在使用微信对讲时每次语音文件的上传、下载,都会消耗这些次数,从设备向微信对讲,消耗一次下载,从微信向设备发出语音消息,消耗一次上传。如果需要提高接口调用次数,需要向腾讯进行相关的商务咨询。使用小程序进行联网绑定的时候无需关注。
家长端接口请求地址
微信家长端文档中,无特殊说明,请求接口地址如下:
http接入: http://iot-ai.turingapi.com
https接入: https://iot-ai.turingapi.com若对数据通信有较高的安全要求,建议选择https接入方式来访问图灵服务,由于ssl层验证预计会额外多花费40~50ms。
接入基本接口
概述
使用自己的微信公众号作为家长端使用时,需要维护该公众号下产品所有授权的设备信息。设备需要经过授权,才能通过airkiss对设备进行联网、发现和绑定。图灵提供授权及授权查询接口,用户需要传入合法参数,对设备进行授权。
设备二维码原始数据接口,满足客户需要给单独设备生产二维码的需求。客户通过该接口返回的数据,通过二维码生成工具将原始数据生成二维码,贴在设备上,方便用户进行绑定操作。
为了应对客户需要自己实现微信公众号的一些其他功能,图灵提供获取微信accessToken接口,防止accessToken调用超限的问题,导致两端服务不可用的情况。
接口说明
设备授权
设备授权用于微信发现、绑定等操作,建议授权设备数组长度不超过5个。小程序联网绑定方式接入时不需要进行设备授权。
请求设置
- Path: /vendor/new/authorize
- Method: POST
- Content-Type: application/json
请求数据格式:
{
"apiKey":"1d465391260749458b65c27b020207f1",
"productId":"22222",
"devices":[
{
"deviceId":"aiAA001122334481",
"mac":"001122334481"
},
{
"deviceId":"aiAA001122334480",
"mac":"001122334480"
}
]
}
| 参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| apiKey | string | 是 | 用于接口请求授权验证 |
| productId | string | 是 | 微信硬件平台为该款产品分配的产品编号(productid),可在产品详情页面查找 |
| deviceId | string | 是 | 设备唯一性标识 |
| mac | string | 是 | 设备的mac地址,保证长度12位,无其他特殊字符,如有其他特殊字符需去掉 |
响应数据格式:
{
"desc": "success",
"code": 0,
"payload": [
{
"deviceId": "aiAA001122334481",
"info": "already exist",
"code": -1
},
{
"deviceId": "aiAA001122334480",
"info": "already exist",
"code": -1
}
]
}
| 参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| code | int | 是 | 请求操作是否正确,0-正确 其他错误 |
| desc | string | 是 | 操作描述 |
| deviceId | string | 是 | 请求授权的设备ID |
| code | int | 是 | 授权操作是否成功,0-成功 其他-失败 |
| info | string | 是 | 该deviceId授权操作完成后的说明,包含错误信息 |
设备状态查询
查询设备的状态
请求设置
- Path: /vendor/new/device/status
- Method: POST
- Content-Type: application/json
请求数据格式:
{
"apiKey":"1d465391260749458b65c27b020207f1",
"deviceId":"aiAA001122334481"
}
| 参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| apiKey | 字符串 | 是 | 用于接口请求授权验证 |
| deviceId | 字符串 | 是 | 设备唯一性标识 |
响应数据格式:
{
"desc": "success",
"code": 0,
"payload": {
"status": 2,
"statusInfo": "bind"
}
}
| 参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| code | int | 是 | 请求操作是否正确,0-正确 其他错误 |
| desc | string | 是 | 操作描述 |
| status | int | 是 | 设备状态,目前取值如下: 0:未授权 1:已经授权(尚未被用户绑定) 2:已经被用户绑定 3:属性未设置 |
| statusInfo | string | 是 | status对应描述 |
获取设备二维码原始数据
请求设置
- Path: /v2/iot/device/qrcode
- Method: POST
- Content-Type: application/json
请求数据格式:
{
"apiKey":"1d46539126074945xxxxxxx",
"deviceId":"aiAAxxxxxxxxxx"
}
| 参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| apiKey | 字符串 | 是 | 用于接口请求授权验证 |
| deviceId | 字符串 | 是 | 设备唯一性标识 |
响应数据格式:
{
"desc": "success",
"code": 0,
"payload": "http://we.qq.com/eeeexxxxsffff"
}
| 参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| code | int | 是 | 请求操作是否正确,0-正确 其他错误 |
| desc | string | 是 | 操作描述 |
| payload | string | 是 | 设备绑定二维码原始数据接口,通过二维码生成工具生成二维码 |
获取微信accessToken
请求设置
- Path: /vendor/wechat_token?apiKey=apiKey
- Method: GET
- Content-Type: application/x-www-form-urlencoded
| 参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| apiKey | 字符串 | 是 | 用于接口请求授权验证 |
响应数据格式:
{
"desc": "success",
"code": 0,
"payload": "accessToken"
}
| 参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| code | int | 是 | 请求操作是否正确,0-正确 其他错误 |
| desc | string | 是 | 错误描述 |
| payload | string | 是 | 微信accessToken |