1.账户授权相关的H5页面,该页面用于账户授权登录
2.OAuth2协议的授权信息,包括(授权链接,ClientID,Client Secret,Access Token URI,开发者网关地址)
1.创建技能,类型请选择标准技能下的智能家居模版技能
2.配置服务信息(说明如下)
(1)账户授权链接:表示该链接为开发商提供的账户授权登录的H5页面链接
(2)ClientId和Client Secret: 开发商自己平台创建的AliGenie的客户端Id和客户端密钥
(3)回调地址:授权回调AliGenie 的回调地址
(4)Access Token URL: 通过code换取access_token的地址
3.授权流程如下图所示:
注意事项:
1.redirect_uri 中包含AliGenie的带有技能id和用户token相关的参数,开放商在开发过程中如遇到卡在获取token的页面上,可能是出现以下情况
(1)开发商在跳转到AliGenie的回调地址中把参数截掉了
如授权地址是:https:
//xxx.com/auth/authorize?redirect_uri=https%3A%2F%2Fopen.bot.tmall.com%2Foauth%2Fcallback%3FskillId%3D11111111%26token%3DXXXXXXXXXX&client_id=XXXXXXXXX&response_type=code&state=111
上述的redirect_uri进行decode结果是:
https://open.bot.tmall.com/oauth/callback?skillId=1111111&token=XXXXXXXXXX
用户授权成功后返回到AliGenie页面上应变成该格式:https://open.bot.tmall.com/oauth/callback?skillId=1111111&token=XXXXXXXXXX&state=11&code=XXXXX
出现以下错误的情况请开发商自行订正:
错误1
:
https://open.bot.tmall.com/oauth/callback?state=11&code=XXXXX
错误2
:
https://open.bot.tmall.com/oauth/callback?skillId=1111111&state=11&code=XXXXX
错误3:
https://open.bot.tmall.com/oauth/callback?skillId=1111111&token=XXXXXXXXXX&state=11?code=XXXXX 该错误是没有兼容参数问题
(2)开发商提供的Access Token URL 不是HTTPS的协议或者是不可授信的(自签名的证书也是不可用的)
(3)开发商提供的GetToken 接口不可用,请开发商自己先验证接口可用性
(1)同步模式
流程图如下(该图仅仅是粗略的示例图,开发商的服务以开发商自己的情况而定)
步骤如下:
1.开发商在AliGenie开放平台测试验证页面上已经授权成功
2.AliGenie开放平台会请求AliGenie后端服务进行列表获取,AliGenie后端服务封装AliGenie智能家居协议的设备发现协议去请求开发商的服务,开发商服务解析协议并返回设备列表
3.AliGenie开放平台获取到授权用户的设备列表后展示在设备列表页面上
4.在AliGenie开放平台的设备列表页面上可以进行设置位置信息
5.开发商语音控制前请对接相应的智能家居控制协议,例如:打开灯,需要进行对接智能家居协议的TurnOn操作,如果已经对接了相应的操作时可以进行语音控制。控制的流程如上图所示
6.如开发商已经对接完了设备所需的功能并且已经验证完毕了后续补充相应的资料进行审核操作,只有审核后才会在天猫精灵APP中露出开发商自己的技能icon
其中的对接协议请参考 AliGenie智能家居接入协议
(2)异步模式
1.异步模式主要为解决由于设备厂商下发链路过程耗时导致智能家居控制超时,从而影响用户体验。目前方案为把原来的厂商控制链路中的过程拆分,第一步 智能家居下发控制命令到厂商,厂商在该步骤只负责指令接收是否收到,不做具体的指令控制。第二步,厂商根据智能家居指令进行链路控制,然后把控制的结果通过智能家居在淘宝开放平台开放的TOP接口回传智能家居,在进行语音播报。
2.厂商接入步骤复用同步接入模式,对接协议请参考 AliGenie智能家居接入协议 。
3.厂家接入联系技术支持提供TOP的appkey进行top接口定向授权,并提供技能id进行配置。
其中的对接TOP对接 AliGenie智能家居TOP异步接入
注意事项:
1.如果遇到设备列表返回为空的,请查看自己的授权账号下是否有设备,如有设备请查看设备发现的响应参数中格式是否和协议中的示例一致,建议开发商调试的时候可以进行埋点输出日志方便查看问题,如有问题时请优先查看日志输出
2.如有问题请提供messageId