成员管理

门锁的成员管理依托于 App 的家庭成员管理功能,在此基本上可对成员进行开锁方式管理。支持的能力有:

  • 获取成员列表,支持返回成员的名称、账号、角色、开锁方式列表;
  • 邀请成员加入家庭
  • 获取家庭成员详细信息
  • 添加普通成员
  • 删除普通成员

支持的角色

  • 管理员: 家庭管理员,对锁有最高的管理权限,可以进行所有的操作。
  • 成员:可以查看与自己相关的信息,如:开门记录、某些设置项等
  • 普通成员:无账号,不可进入面板

其中管理员、成员角色需要邀请进入家庭,普通成员则需要通过【添加普通成员 API】添加

API

获取成员列表

  • 含义:获取当前锁下的成员列表,包括家庭管理员和家庭成员。锁支持大容量开锁方式时,同时会返回普通成员。
  • 详细:查看文档

获取家庭成员详细信息

  • 含义:获取家庭成员详细信息,包含名称、账号、角色、开锁方式列表等信息
  • 详细:查看文档

添加普通成员

  • 含义:当锁支持大容量开锁方式时,可以添加无账号的普通成员,用于管理此成员的开锁方式。
  • 详细:查看文档

删除普通成员

  • 含义:当锁支持大容量开锁方式时,可通过此方法删除普通成员。
  • 详细:查看文档

修改非管理员角色时效

  • 含义:可使用此 API 修复非管理员角色的成员的时效性,成员的时效性会影响成员的开锁方式的时效。
  • 详细:查看文档

常见问题

Q1: 如何区分管理员和普通成员?

A: 通过 userType 字段判断:

import { UserType } from '@ray-js/lock-sdk';

const adminList = members.filter(
  item => item.userType === UserType.ADMIN || item.userType === UserType.OWNER
);
const memberList = members.filter(
  item => item.userType !== UserType.ADMIN && item.userType !== UserType.OWNER
);

Q2: 添加成员失败怎么办?

A: 检查:

  1. 成员名称不能为空
  2. 如果锁使用了小容量方案,不建议使用 addUser API

Q3: 如何设置成员的时效性?

A: 使用 updateUserLimitTime API:

  • permanent: true 表示永久有效
  • permanent: false 需要提供 effective 配置对象

Q4: 什么是未绑定的开锁方式?

A: 未绑定的开锁方式是指设备上已录入但未关联到用户的开锁方式(如指纹、人脸等)。可以通过 checkUnBindUnlockMethods 检查,并通过绑定功能关联到用户。

Q5: 如何同步开锁方式?

A: 调用 syncUnlockMethod() 方法,该方法会同步设备端和云端的数据。

Q6: 成员列表支持分页吗?

A: 支持,通过 page 和 pageSize 参数控制:

const result = await getUsers({ page: 1, pageSize: 50 });
if (result.hasMore) {
  // 加载下一页
}

Q7: 如何搜索成员?

A: 使用 keyword 参数:

const result = await getUsers({ keyword: '搜索关键字' });

Q8: 删除成员会同时删除其开锁方式吗?

A: 会同时删除成员及其关联的开锁方式。