关于设备分享
很多开发者会关心,智能生活开放平台的SaaS服务中,设备分享逻辑是什么样的,是否和自己原有的逻辑兼容?一个用户是否能绑定多个设备,一个设备是否能被多个用户绑定?
这篇文章中会详细解释这些问题。
目前智能生活开放平台设备分享逻辑如下:当
设备被第一个用户A绑定后,A就成了该设备的管理员。A可以利用二维码,将设备分享出去,用户B、C、D扫描二维码后,就完成了设备绑定。
管理员只有一个,就是用户A,他可以解除其他成员的绑定关系。
如果用户A主动解绑设备,那所有用户都和该设备解绑了。
注意:如果因为退货或其他售后问题,用户A没有主动解绑,商家客户人员可以在 商家后台-用户管理 中找到该用户并进行解绑。
由于设备支持多人分享,所以当用户A绑定设备后,用户B再次配网时,会有相应的权限处理:
一、WiFi嵌入式设备
由于WiFi设备的配网比较麻烦,所以当用户B从头开始走配网流程时,我们认为用户B不是用户A的家人,而是该设备已经转手,所以设计为“抢占式”。
用户B配网成功后,将成为该设备的管理员。而用户A解除绑定关系。
二、蓝牙设备/带Android屏的设备
有
两种绑定逻辑:
1. 分享绑定(默认)
当设备被第一个用户A绑定后,A就成了该设备的管理员。
当用户B也去配网和绑定设备时,会提示他,该设备已经被A绑定了,需要他分享给你,你才能用这个设备。
在实际操作中,用户A需要展示一个分享二维码给B,B扫描后即绑定成功,B也可以控制该设备了。
管理员A可以解除用户B的绑定关系。
以上交互所需要的接口,都在智能生活开放平台中提供了。
2. 免分享绑定(暂未开放,请在商家后台-问题反馈中提交工单申请,我们会很快处理的,但是请非常谨慎,只能修改一次)
如果你的设备的数据安全性要求没有那么高,并希望能够让家庭成员更方便地绑定设备,我们也提供另外一种绑定机制:
当设备被第一个用户A绑定后,A就成了该设备的管理员。
当用户B也去配网和
绑定设备时,直接能够绑定成功。但B不是管理员。
管理员A可以解除用户B的绑定关系。
-----------常见问题----------
(1)
一个用户是否能绑定多个设备,一个设备是否能被多个用户绑定?
都可以。
(2)怎样分享自己的设备?
管理员通过设备的uuid,调用API
“m t o p . o p e n a l i n k . a p p . c o r e . u s e r . s a v e q r”
生成一个qrKey,这个
qrKey
可用于产生一个二维码。此处请注意,同一个uuid,每一次调用此
API
,生成的qrKey 都会不同。qrKey 的有效时间是十五分钟。
(3)怎样绑定别人分享的设备
被分享者通过扫描二维码获取到qrKey 之后,可通过API
“m t o p . o p e n a l i n k . a p p . c o r e . u s e r . s c a n q r”
绑定相应的设备,并且该
API
还会将设备的uuid、model 和name 返回给调用方。
(4)如何获取分享设备的详细信息
被分享者通过步骤(3)绑定设备后,可以获得设备的uuid 信息。然
后,利用接口“m t o p . o p e n a l i n k . a p p . c o r e . d e v i c e . g e t d e t a i l”即可
获取设备详情。
(5)如何知道某设备被分享给了哪些用户?
接口“mtop.openalink.app.core.device.getdetail”的返回值里,包含
“relAccounts”
。“relAccounts”会列出该设备的绑定者列表,包括管理员和
其他普通绑定者。所以可通过该接口查看某设备都被分享给了谁。
(6)如何知道“我”分享出去哪些设备?
通过接口“m t o p . o p e n a l i n k . a p p . c o r e . d e v i c e s . g e t b y u s e r”,
可获取“我”绑定的所有设备列表。通过该列表获得设备的uuid,再结合
接口“m t o p . o p e n a l i n k . a p p . c o r e . d e v i c e . g e t d e t a i l”,可间接获得
“
我”作为管理员分享出去的所有设备。
(7)如何停止分享?
绑定者可以通过
“m t o p . o p e n a l i n k . a p p . c o r e . u s e r . u n b i n d d e v i c e”
接口,解除与某
设备的绑定关系。
如果该用户为管理员,解绑后,所有绑定者都自动解绑。
(8)管理员和普通绑定者权限的差别
管理员可以分享自己绑定的设备给他人;普通绑定者不能分享设备给
他人。
以上mtop 接口的调用方式和详细参数信息,请参考:
https://iot.aliyun.com/docs/develop/server/api.html