APP SDK

若开发者需要集成Aqara设备到第三方APP上实现设备配网等功能,可选择集成SDK。

目前SDK分两种:不带UI的SDK,提供demo,所有前端页面需开发者自行设计开发;带UI的SDK,提供带有Aqara风格的SDK和demo,开发者也可替换为自有品牌的UI交互风格。详细SDK对接请参考SDK对接开发手册

APP SDK一般适用于虚拟账号授权的方式,授权流程可参见授权管理-通过API获取虚拟账号授权流程页面。

不带UI的SDK

SDK仅用于网关设备配网,子设备配网通过write.device.openConnect接口实现。

具体配网流程如下:

SDK process

此SDK暂没有开放下载链接,如有需求,请咨询绿米商务,谢谢。

注意:由于IOS对Homekit有强制性,即带有Homekit功能的设备使用IOS手机添加时需要以Homekit的流程进行配网。

带UI的SDK

带UI的SDK会提供Aqara风格标准化的UI交互页面,开发者可直接使用,也可根据自身APP风格更改交互UI设计。

SDK集成说明

集成流程如下:

UISDK API

此SDK暂没有开放下载链接,如有需求,请咨询绿米商务,谢谢。

获取UI-SDK初始化参数接口

  • 请求参数:无

  • 请求示例:

{
    "intent": "config.app.init", 
    "data": {
    }
}
  • 响应参数:
名称 类型 描述
userId String Aqara用户标识唯一id
token String APP-SDK访问绿米服务的token
appRequestDomain String APP-SDK请求的服务域名地址
expiresIn Int token过期时间,单位秒
positionId String 默认位置
baseH5Url String sdk请求的h5链接
baseImageUrl String sdk请求的图片cdn地址
appId String sdk初始化参数
appKey String sdk初始化参数
  • 响应示例:
{
"code": 0,
    "requestId": "",
    "message": "Success",
    "msgDetails": null,
    "result": {
        "expiresIn":2592000,
        "baseImageUrl":"https://xxxxx.aqara.com",
        "appRequestDomain":"xxxx.aqara.cn",
        "appKey":"axasdasxasdsadasxxxxx",
        "baseH5Url":"https://xxxxx.aqara.com/index.html",
        "userId":"U0211163631238521600",
        "token":"open9ee4f2c01234504b540ac8f0458de6807cd5",
        "appId":"2070959b27312310327168c4"
    }
}

通知token过期接口

  • 请求参数:
名称 类型 是否必须 描述
token String APP-SDK访问Aqara服务的token
  • 请求示例:
{
    "intent": "config.app.tokenExpire", 
    "data": {
        "token": "xxx"
    }
}
  • 响应参数:无

  • 响应示例:

{
"code": 0,
    "requestId": "",
    "message": "Success",
    "msgDetails": null
}

消息推送

为了提高UI-APP-SDK集成的体验效果,建议支持推送通道,方便Aqara系统把客户关注的数据,实时推送到第三方APP。

流程如下:

UISDK MESSAGE

请求说明

请求URL:Aqara开发者平台-控制台-应用管理-消息推送页面配置的消息接收地址,如:https://xx.xx.com/aqara/app/message

请求方式:HTTP POST (application/json)

请求head参数:

名称 类型 是否必须 描述
time String 请求时间
nonce String 请求随机数保障请求唯一性
appkey String 请求签名key,如果配置开启签名时返回
sign String 请求签名,如果配置开启签名时返回

Sign签名规则:

  1. header参数按照token、appkey、nonce、time字段顺序进行排序,并使用&符号拼接,拼接格式为appkey=xxx&nonce=xxx&time=xxx;
  2. 对第一步产生的字符串末尾拼接appSecret;
  3. 对第二步产生的字符串,全部小写处理;
  4. 对第三步产生的字符串MD5 32位加密后,生成的数即为Sign的值。

注意:默认不开启签名,如开启签名需要Aqara开发者在平台进行相关的配置,完善 appKey(签名Key) 和 appSecret(签名秘钥)。

-------------------------------------- 第一步:拼接header参数 --------------------------------
appkey=532cad73c5493193d63d367016b98b27&Nonce=C6wuzd0Qguxzelhb&Time=1618914078668
-------------------------------------- 第二步:拼接appKey参数 --------------------------------appkey=532cad73c5493193d63d367016b98b27&Nonce=C6wuzd0Qguxzelhb&Time=1618914078668gU7Qtxi4dWnYAdmudyxni52bWZ58b8uN
-------------------------------------- 第三步:字符串小写 ------------------------------------- appkey=532cad73c5493193d63d367016b98b27&nonce=c6wuzd0qguxzelhb&time=1618914078668gu7qtxi4dwnyadmudyxni52bwz58b8un
-------------------------------------- 第三步:MD5 32位加密 ----------------------------------
0e27da9f4c88c27896d1393a64d70392

请求Body参数:

名称 类型 是否必须 描述
token String 终端推送id
对应推送第三方生成给app-sdk的clientId,多个时用英文逗号分割
data String 具体推送到app-sdk的数据
  • 请求示例
{
    "token":"xxx,xxx",
    "data":"xxxx"
}
  • 请求响应格式
{
    "code":0
}

注意:当第三方系统收到推送的HTTP消息时,请按以上示例返回,若返回格式不符合要求,Aqara系统会认为第三方接收消息系统服务异常,将在一定条件下停止对第三方系统进行消息推送。

Copyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2024-02-21 09:55:50

results matching ""

    No results matching ""