Webs
帐号关联H5流程和接口说明 - 包含JSbridge和SDK
背景描述 客户APP要使用BroadLink SDK和UI框架,需要在客户APP上实现JSBridge以提供如下接口给H5调用。另外,注意H5需要在新窗口中打开,否则调用关闭当前页面接口时可能会导致错误。 详细内容 无设备配网H5页面时,BroadLink账号oauth流程图请参考: 有设备配网H5页面时,BroadLink账号oauth流程图请参考: 有设备配网H5页面时,客户方账号oauth流程图请参考: 从客户APP跳转到BroadLink H5携带参数请参考: 以下所有参数,不分先后顺序。 以下使用{{broadlinkUrl}}表示BroadLink H5地址。 以下使用{{thirdUrl}}表示BroadLink H5在账号登录成功重定向到的客户url。 以下使用{{thirdOauthUrl}}表示BroadLink H5使用客户方账号登录时,需跳转到的客户oauth地址。 BroadLink帐号流程 未进行任何帐号绑定前,(BroadLink帐号流程参数同第三方帐号流程参数) 参数说明 redirect_uri - 即{{thirdUrl}},redirect_uri 中可携带其余客户所需参数(必须经过encode后放在 redirect_uri 中)。 - 帐号授权时BroadLink云端会检查校对该字段信息是否与DNAkit平台注册信息一致。 - H5帐号登录成功后跳转到此地址,并将授权后的code携带到该地址。 client_id - 帐号授权时BroadLink云端会检查校对该字段信息是否与DNAkit平台注册信息一致。 response_type - 默认值为code。 state - 自定义或随机字符串等。 其他 - 客户APP可按自己的需求携带其他参数,该参数将会被带到redirect_uri。 示例 {{broadlinkUrl}}?redirect_uri={{redirect_uri}}&client_id={{client_id}}&response_type=code&state={{state}} BroadLinkH5 完成帐号登录后 跳转到{{thirdUrl}}时携带的参数(BroadLink帐号流程参数同第三方帐号流程参数) 参数说明 »
APPSDK更新记录
2.7 版本更新内容 本版本主要是继续拆分 BLLetCore 库为 BLLetCore 和 BLLetIRCode BLLetCore 包含核心功能,设备控制模块。 BLLetIRCode 主要是原有红外码模块。 更新内容: 从 BLLetCore 库中抽离 BLLetIRCode 库,不影响对外接口 修复设备远程控制 sendCount > 1 时死锁BUG 增加返回结果为null判断,防止crash 修复多个已知BUG,之前由H5规避的问题 2.6 版本更新内容 本版本主要是继续拆分 BLLetCore 库为 BLLetCore, BLAccount 和 BLFamily 。 BLLetCore 包含核心功能,主要是: 设备管理模块和红外码模块。 BLAccount 主要包含账户系统模块。 BLFamily 主要包含有家庭管理模块。 注意: 由于远程控制必须依赖于账户登录,所以如果需要设备远程控制,则必须依赖 BLLetCore和BLAccount。 Android 在完成初始化之后,必须调用 BLAccount.addLoginListener(BLLet.Controller.getLoginListener()) 。 2.5 版本更新内容 第3代配网方式修改 优化设备控制,增加重发机制 新增通用定时种类(循环定时,防盗定时) 新增通用定时新接口 测试相关 BUG 修改 2.3 版本更新内容 新增 BLLetAsync 库,主要是对 BLLetCore 核心库的封装,使得数据与BroadLink智慧星实现完全兼容。 方便后续语音服务等云端功能的接入。 »
帐号关联H5使用SDK说明
更新记录 更新内容 更新时间 更新作者 手册创建 2017/08/29 KHY 补充接口 2017/11/09 ZJJ 补充SDK集成说明 2017/12/13 ZJJ 集成方式修改 2018/1/12 ZJJ 概述 本文档描述了BroadLink智能家居APP SDK的接口规范. 通过本SDK开发的APP可以实现和BroadLink智慧星实现完全兼容的功能。 通过本SDK开发的APP可以快速和Amazon Alexa,Google Home,天猫精灵,叮咚音箱等平台进行互联互通,不需要再进行二次开发。 基本概念: 家庭 (family) 每个帐号可以创建多个家庭,名字需要不同,每个家庭都有唯一ID 房间 (room) 每个家庭默认会创建一组房间,名字不同,每个房间都有唯一ID 终端(endPoint) 每个房间可以添加多个终端,要求终端不能同名,每个终端都有唯一ID 设备(device) 尚未添加到家庭的终端,都称之为设备 设备配网 将Wi-Fi路由器的SSID和密码配置给设备的过程 历史数据 查询设备上报的历史数据。 接口列表 整个接口分为如下几个功能部分: SDK管理 包括sdk初始化和sdk销毁接口.具体参考 SDK管理 帐号管理 »
SDK管理
初始化接口格式 String sdkInit(String params) 销毁接口格式 void sdkDestroy() »
账号管理
帐号管理接口格式 String accountManagement(String action, String params, BLLetAsyncRequestCallbacker callbacker) 第三方帐号登录 账号互通说明 action: "LoginWithOauth"params: { "companyId": "xxx", // Oauth使用公司,like “facebook”,“taobao” "accountId": "xxx", // Oauth成功返回id "accessToken":"xxx", // Oauth成功返回token "nickName": "xxx", // 用户昵称 可以为空 "iconUrl": "xxx" // 用户头像URL 可以为空 }返回: { "status":0, "msg":"success", "userId":"", // 登录成功返回 userId "loginSession":"" // 登录成功返回 session } 参数说明: companyId BroadLink 云端所支持的Oauth名称 companyId 说明 broadlink 博联自身Oauth,使用智慧星账号系统 facebook Facebook Oauth taobao 淘宝Oauth 普通帐号登录 action: "LoginWithPassword"params: { "username": "xxx", "password": "xxx" }返回: { "status":0, "msg":"success", "userId":"", "loginSession":"" } 验证码快速登录 action: "LoginWithVerificationCode"params: { "phone": "xxx", // 手机号 "countryCode": "xxx", // 手机号所在国家码 例如 "0086" "vcode": "xxx" // 验证码 }返回: { "status":0, "msg":"success", "userId":"", "loginSession":"" } 账号注册 action: "Regist"params: { "phone": "xxx", // 手机号 "countryCode": "xxx", // 手机号所在国家码 例如 "0086" "nickname" : "xxxx", // 用户昵称 "gender" : "xxx", // 用户性别 "male" "female" "birthday" : "xxx", // 用户生日 "icon" : "xxx", // 头像路径 可以为空 "vcode": "xxx" // 验证码 }返回: { "status":0, "msg":"success", "userId":"", "loginSession":"" } 账户密码重置 action: "ResetPassword"params: { "phone": "xxx", // 手机号 "newPassword": "xxx", // 新密码 "vcode": "xxx" // 验证码 }返回: { "status":0, "msg":"success", "userId":"", "loginSession":"" } 账户密码修改 action: "ModifyPassword"params: { "oldPassword": "xxx", // 原密码 "newPassword": "xxx", // 新密码 }返回: { "status":0, "msg":"success" } 发送验证码 action: "SendVerificationCode"params: { "phone": "xxx", // 手机号 "countryCode": "xxx", // 手机号所在国家码 例如 "0086" "use" : "xxx" // 验证码作用 "regist" "login" "resetPassword" }返回: { "status":0, "msg":"success" } 参数说明: »
设备管理
1. 设备配置网络接口格式 void deviceConfig(String action, String params, DeviceConfigCallback callback) 1.1 配网 action: EasyConfigparams: { "ssid":"Broadlink", // wifi ssid "password":"12345678", // wifi密码 "timeout": 60, // 配置超时时间,单位秒 "pid" : "", // 配置设备的产品信息,可以为空 "version": 2 // 配网版本 }callback返回: { "status":0, "deviceInfo": deviceInfo //配置成功上的设备信息 } 1.2 取消配置 action: EasyConfigCancelparams: 空callback返回: { "status":0 , "msg": "success" } 1.3 扫描局域网设备 action: ScanDevicesparams: { "did" : "", // 扫描设备信息,如果为空,则返回局域网所有设备 }callback返回: { "status":0, "list": [ deviceInfo, //设备信息 . »
家庭管理
家庭管理接口格式 String familyManagement(String action, String params, BLLetAsyncRequestCallbacker callbacker) 创建家庭 action:CreateFamilyparams: { "name": "xxx", // 家庭名称,可以为空 "country": "xxxx" // 家庭所在国家,可以为空 "province": "xxxx" // 家庭所在省份,可以为空 "city": "xxxx" // 家庭所在城市,可以为空 } 返回: { "status":0, "msg" :"success", "familyInfo": familyInfo,// 家庭基本信息,详情见附录表格 "roomList" : [ // 自动创建的房间列表 roomInfo, // 房间信息 roomInfo ] } 查询家庭基本信息 注意:如果有多个家庭,返回的可能是一个家庭列表 action:GetFamilyListparams: { "userid": "xxx" // 用户登录成功返回的userid }返回: { "status":0, "msg":"success", "familyList":[ // 用户下所有家庭的基本信息列表 familyInfo, familyInfo ] } 查询家庭全部信息 action:GetFamilyDetailInfoparams: familyInfo返回: { "status":0, "msg":"success", "familyInfo": familyInfo, "endPointList": [ // 家庭内终端信息列表 endPointInfo, endPointInfo ], "roomList":[ // 家庭内房间信息列表 roomInfo, roomInfo ] } 修改家庭信息 action:ModifyFamilyInfoparams: familyInfo返回: { "status":0, "msg":"success", "familyInfo": familyInfo, } 删除家庭 action:DelFamilyparams: familyInfo返回: { "status":0, "msg":"success" } 向家庭中添加终端 action:AddEndpointparams: { "familyInfo":familyInfo, // 需要添加到的家庭信息 "roomInfo":roomInfo, // 需要添加到的房间信息 "endPointInfo":endPointInfo // 需要添加的终端信息 }返回: { "status":0, "msg":"success", "familyInfo": familyInfo, // 添加完成之后的家庭信息 "endPointInfo": endPointInfo // 添加完成之后的终端信息 } 从家庭中删除终端 action:DeleteEndpointparams: { "familyInfo":familyInfo, "endPointInfo":endPointInfo } 返回: { "status":0, "msg":"success", "familyInfo": familyInfo } 更新终端描述信息 action:UpdateEndpointparams: { "familyInfo":familyInfo, "endPointInfo":endPointInfo } 返回: { "status":0, "msg":"success", "familyInfo": familyInfo } 更新终端位置信息 action:UpdateEndpointLocationparams: { "familyInfo":familyInfo, "endPointInfo":endPointInfo, "roomInfo" : roomInfo }返回: { "status":0, "msg":"success", "familyInfo": familyInfo } 房间管理 action:ManageRoomparams: { "familyInfo":familyInfo, "roomInfo" : roomInfo, "action" : "xxxxx" // 对房间的操作 "add" "modify" "del" }返回: { "status":0, "msg":"success", "familyInfo": familyInfo } 参数说明 »
红外码管理
红外码管理接口格式 String iRService(String action, String params, BLLetAsyncRequestCallbacker callbacker) 获取类别下品牌列表 action: GetBrandListparams: { "categoryId":1, // 设备类型 1/2/3/… }返回: { "status":0 , //获取结果 "msg": "success", "brands": [] // 品牌列表 } categoryId 说明 1 电视 2 机顶盒 3 空调 获取地区下电视运营商列表 action: GetOperatorListparams: { "country" : "中国", // 国家 "province" : "浙江", // 省份 "city" : "杭州", // 城市 }返回: { "status":0 , //获取结果 "msg": "success", "operators": [] // 运营商列表 } 获取运营商下电视机顶盒列表 action: GetSTBListByOperatorparams: { "locationId":xxx, "operatorId":xxx }返回: { "status":0 , //获取结果 "msg": "success", "products": [] // 型号列表 } 获取品牌下电视机列表 action: GetTVListByBrandparams: { "brandId":xxx }返回: { "status":0 , //获取结果 "msg": "success", "products": [] // 型号列表 } 获取品牌下空调列表 action: GetACListByBrandparams: { "brandId":xxx }返回: { "status":0 , //获取结果 "msg": "success", "products": [] // 型号列表 } 红外服务通用HTTP接口 该接口封装红外服务相关HTTP请求,使用前需了解相关云端API参数 »
产品管理
产品管理接口格式 String productManagement(String action, String params, BLLetAsyncRequestCallbacker callbacker) 获取类别下品牌列表 action: GetBrandListparams: { "category":"", //sp, rm }返回: { "status":0 , //获取结果 "msg": "success", "brands": [] // 品牌列表 } 获取品牌下产品列表 action: GetProductListByBrandparams: { "category" : "" , // 设备类型 1/2/3/… "brand":"" , // 品牌类型 }返回: { "status":0 , //获取结果 "msg": "success", "products": [] // 型号列表 } 产品管理通用HTTP接口 该接口封装产品管理相关HTTP请求,使用前需了解相关云端API参数 action:ProductCommonHttpRequestparams: { "urlPath" : "xxxxx", // URL路径 不包含 domain "head" : {}, // HTTP请求头 "body" : {} // HTTP请求内容 }返回: {} // 云端返回数据 »
对象定义
对象定义 设备信息 deviceInfo/subDeviceInfo { "did": "", "pid":"", "gatewayId":"", "mac":"", "name":"", "cookie":"" } 终端信息 endPointInfo/subEndPointInfo { "endPointId":"", "type":xx, "name":"", "icon":"", "roomId":"", "context":"", "deviceInfo":deviceInfo } 房间信息 roomInfo { "roomId":"", "name":"", "type":"" } 家庭信息 familyInfo { "familyId":"", "name":"", "icon":"", "version":"", "country":"", // 家庭所在国家,可以为空 "province": "", // 家庭所在省份,可以为空 "city": "" // 家庭所在城市,可以为空 } »