更新时间:2024-08-23 09:47:59下载pdf
本文将介绍成员管理相关的各项功能,包括以下内容:
成员管理功能对应 ThingSmartMemberBiz
类,通过调用相关接口来实现对家庭成员的操作。
相比 ThingSmartHomeMember
,ThingSmartMemberBiz
提供了更多的功能。如果您仍在使用 ThingSmartHomeMember
,请参考 此文档。
类名(或协议名) | 说明 |
---|---|
ThingSmartMemberBiz | 成员管理类 |
ThingSmartHomeMemberModel | 成员模型类 |
ThingSmartHomeMemberModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
memberId | long long | 成员 ID |
homeId | long long | 成员所在家庭 ID |
headPic | NSString | 成员头像 |
name | NSString | 成员名称 |
role | ThingHomeRoleType | 成员角色
|
其中成员不同角色的权限功能如下:
角色类型 | 角色描述 | 权限功能 |
---|---|---|
家庭所有者 | 一般为家庭的创建者,一个家庭只能有一个家庭所有者,家庭所有者权限最大 |
|
管理员 | 只有家庭所有者可以添加管理员,一个家庭可以有多个管理员,管理员权限不能删除家庭,只能离开家庭,只能添加普通成员 |
|
普通成员 | 家庭所有者或者管理员添加普通成员,一个家庭可以有多个普通成员,普通成员基本只能查看信息 |
|
接口说明
- (void)addHomeMemberWithModel:(ThingSmartHomeAddMemberRequestModel *)model
homeId:(long long)homeId
success:(void(^)(ThingSmartFamilyMemberModel *memberModel))success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
model | 添加成员请求模型 |
homeId | 家庭 ID |
success | 成功回调 |
failure | 失败回调 |
ThingSmartHomeAddMemberRequestModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
name | NSString | 为受邀请者设置的昵称。 |
account | NSString | 受邀请账号。 |
countryCode | NSString | 受邀请者账号对应国家码。 |
role | ThingHomeRoleType | 成员角色。 |
headPic | UIImage | 为受邀请者设置的头像,nil 时使用受邀请者个人头像。 |
autoAccept | BOOL | 是否需要受邀请者同意接受邀请。
|
ThingSmartFamilyMemberModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
memberId | long long | 成员 ID |
headPic | NSString | 成员头像 |
调用示例
Objective-C
- (void)addMemberWithHomeId:(long long)homeId {
ThingSmartHomeAddMemberRequestModel *requestModel = [[ThingSmartHomeAddMemberRequestModel alloc] init];
requestModel.name = @"";
requestModel.headPic = [UIImage imageNamed:@""];
requestModel.countryCode = @"";
requestModel.account = @"";
requestModel.role = ThingHomeRoleType_Member;
requestModel.autoAccept = NO;
[[ThingSmartMemberBiz sharedInstance] addHomeMemberWithModel:requestModel homeId:homeId success:^(ThingSmartHomeMemberModel * _Nonnull memberModel) {
} failure:^(NSError *error) {
}];
}
Swift
func addMember(homeId:Int64) {
let model = ThingSmartHomeAddMemberRequestModel()
model.account = ""
model.autoAccept = false
model.countryCode = ""
model.role = ThingHomeRoleType.member
model.name = ""
ThingSmartMemberBiz.sharedInstance().addHomeMember(with: model, homeId: homeId) { memberModel in
} failure: { error in
}
}
拥有者(ThingHomeRoleType_Owner
)可以删除管理员及以下角色,管理员(ThingHomeRoleType_Admin
)仅仅可以删除普通成员。
接口说明
若成员传入自身 memberId
,针对不同的家庭成员有一些区别:
- (void)removeHomeMemberWithMemberId:(long long)memberId
success:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
memberId | 将要移除的成员 ID |
success | 成功回调 |
failure | 失败回调 |
调用示例
Objective-C
- (void)removeMember:(long long)memberId {
[[ThingSmartMemberBiz sharedInstance] removeHomeMemberWithMemberId:memberId success:^{
} failure:^(NSError *error) {
}];
}
Swift
func removeMember(memberId:Int64) {
ThingSmartMemberBiz.sharedInstance().removeHomeMember(withMemberId: memberId) {
} failure: { error in
}
}
拥有者(ThingHomeRoleType_Owner
)可以修改管理员及以下角色,管理员(ThingHomeRoleType_Admin
)仅仅可以修改普通成员。
接口说明
- (void)updateHomeMemberInfoWithModel:(ThingSmartHomeMemberRequestModel *)model
success:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
model | 更新成员信息请求模型 |
success | 成功回调 |
failure | 失败回调 |
ThingSmartHomeMemberRequestModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
memberId | long long | 将要更新信息的成员 ID |
name | NSString | 为成员设置的昵称 |
role | ThingHomeRoleType | 为成员设置的角色 |
headPic | UIImage | 为成员设置的头像 |
调用示例
Objective-C
- (void)updateMember:(long long)memberId {
ThingSmartHomeMemberRequestModel *requestModel = [[ThingSmartHomeMemberRequestModel alloc] init];
requestModel.memberId = memberId;
requestModel.name = @"new nick name";
requestModel.role = ThingHomeRoleType_Admin;
requestModel.headPic = [UIImage imageNamed:@""];
[[ThingSmartMemberBiz sharedInstance] updateHomeMemberInfoWithModel:requestModel success:^{
} failure:^(NSError *error) {
}];
}
Swift
func updateMember(memberId:Int64) {
let requestModel = ThingSmartHomeMemberRequestModel()
requestModel.name = "new nick name"
requestModel.role = ThingHomeRoleType.admin
requestModel.headPic = UIImage()
requestModel.memberId = memberId
ThingSmartMemberBiz.sharedInstance().updateHomeMemberInfo(with: requestModel) {
} failure: { error in
}
}
关联成员账号是在已添加的成员没有绑定邮箱和手机的时候,比如第三方账号登录的情况,可以给成员绑定关联可用的邮箱和手机。家庭拥有者可以关联管理员及以下角色,管理员仅仅可以关联普通成员。
接口说明
- (void)associateHomeMemberWithModel:(ThingSmartHomeMemberAssocaiteRequestModel *)model
success:(void(^)(BOOL result))success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
model | 关联成员账号请求模型 |
success | 成功回调 |
failure | 失败回调 |
ThingSmartHomeMemberAssocaiteRequestModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
memberId | long long | 将要关联账号的成员 ID |
countryCode | NSString | 关联账号的国家码 |
role | ThingHomeRoleType | 为成员设置的角色 |
account | NSString | 关联账号 |
调用示例
Objective-C
- (void)associateMember:(long long)memberId {
ThingSmartHomeMemberAssocaiteRequestModel *requestModel = [[ThingSmartHomeMemberAssocaiteRequestModel alloc] init];
requestModel.memberId = memberId;
requestModel.account = @"";
requestModel.role = ThingHomeRoleType_Member;
requestModel.countryCode = @"";
[[ThingSmartMemberBiz sharedInstance] associateHomeMemberWithModel:requestModel success:^(BOOL result) {
} failure:^(NSError *error) {
}];
}
Swift
func associateMember(memberId:Int64) {
let requestModel = ThingSmartHomeMemberAssocaiteRequestModel()
requestModel.memberId = memberId;
requestModel.account = ""
requestModel.countryCode = ""
requestModel.role = ThingHomeRoleType.member
ThingSmartMemberBiz.sharedInstance().associateHomeMember(with: requestModel) { result in
} failure: { error in
}
}
获取家庭下的成员列表。
接口说明
- (void)getHomeMemberListWithHomeId:(long long)homeId
success:(void(^)(NSArray <ThingSmartHomeMemberModel *> * list))success
failure:(ThingFailureError )failure;
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
success | 成功回调 |
failure | 失败回调 |
调用示例
Objective-C
- (void)getMemberListWithHomeId:(long long)homeId {
[[ThingSmartMemberBiz sharedInstance] getHomeMemberListWithHomeId:homeId success:^(NSArray<ThingSmartHomeMemberModel *> * _Nonnull list) {
} failure:^(NSError *error) {
}];
}
Swift
func getMemberList(with homeId:Int64) {
ThingSmartMemberBiz.sharedInstance().getHomeMemberList(withHomeId: homeId) { memberList in
} failure: { error in
}
}
获取家庭下具体的成员信息。
接口说明
- (void)getHomeMemberInfoWithHomeId:(long long)homeId
memberId:(long long)memberId
success:(void(^)(ThingSmartHomeMemberModel * model))success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
memberId | 成员 ID |
success | 成功回调 |
failure | 失败回调 |
调用示例
Objective-C
- (void)getMemberInfoWithHomeId:(long long)homeId memberId:(long long)memberId {
[[ThingSmartMemberBiz sharedInstance] getHomeMemberInfoWithHomeId:homeId memberId:memberId success:^(ThingSmartHomeMemberModel * _Nonnull model) {
} failure:^(NSError *error) {
}];
}
Swift
func getMemberInfo(homeId:Int64, memberId:Int64) {
ThingSmartMemberBiz.sharedInstance().getHomeMemberInfo(withHomeId: homeId, memberId: memberId) { memberModel in
} failure: { error in
}
}
获取该家庭成员角色可使用的设备列表,比如某类门锁设备或者其他安防类设备可授权部分家庭成员操控该设备。
接口说明
- (void)getHomeMemberDeviceListWithMemberId:(long long)memberId
success:(void(^)(NSArray <ThingSmartMemberLinkDeviceListModel *> * list))success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
memberId | 成员 ID |
success | 成功回调 |
failure | 失败回调 |
调用示例
Objective-C
- (void)getDeviceListWithMemberId:(long long)memberId {
[[ThingSmartMemberBiz sharedInstance] getHomeMemberDeviceListWithMemberId:memberId success:^(NSArray<ThingSmartMemberLinkDeviceListModel *> * _Nonnull list) {
} failure:^(NSError *error) {
}];
}
Swift
func getDeviceList(memberId:Int64) {
ThingSmartMemberBiz.sharedInstance().getHomeMemberDeviceList(withMemberId: memberId) { deviceList in
} failure: { error in
}
}
家庭所有者将家庭转移给别的成员。
接口说明
- (void)transferHomeWithMemberId:(long long)memberId
success:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
memberId | 成员 ID |
success | 成功回调 |
failure | 失败回调 |
调用示例
Objective-C
- (void)transferHomeToMember:(long long)memberId {
[[ThingSmartMemberBiz sharedInstance] transferHomeWithMemberId:memberId success:^{
} failure:^(NSError *error) {
}];
}
Swift
func transferHome(to memberId:Int64) {
ThingSmartMemberBiz.sharedInstance().transferHome(withMemberId: memberId) {
} failure: { error in
}
}
获取家庭下成员邀请记录,包含已邀请未加入、已过期的邀请记录。
接口说明
- (void)getInvitationRecordListWithHomeId:(long long)homeId
success:(void(^)(NSArray<ThingSmartHomeInvitationRecordModel *> *invitationRecordList))success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
success | 成功回调 |
failure | 失败回调 |
ThingSmartHomeInvitationRecordModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
validTime | NSInteger | 邀请有效时间 |
invitationID | NSNumber | 邀请 ID |
invitationCode | NSString | 邀请码 |
name | NSString | 邀请标识名称 |
调用示例
Objective-C
- (void)getRecordListWithHomeId:(long long)homeId {
[[ThingSmartMemberBiz sharedInstance] getInvitationRecordListWithHomeId:homeId success:^(NSArray<ThingSmartHomeInvitationRecordModel *> * _Nonnull invitationRecordList) {
} failure:^(NSError *error) {
}];
}
Swift
func getRecordList(homeId:Int64) {
ThingSmartMemberBiz.sharedInstance().getInvitationRecordList(withHomeId: homeId) { recordList in
} failure: { error in
}
}
创建邀请码成功后,调用 success
回调邀请结果模型,包含邀请码和邀请语。
接口说明
- (void)createInvitationWithHomeId:(long long)homeId
success:(void(^)(ThingSmartHomeInvitationResultModel *invitationResultModel))success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
success | 成功回调 |
failure | 失败回调 |
ThingSmartHomeInvitationResultModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
invitationCode | NSString | 邀请码 |
invitationMsgContent | NSString | 邀请语 |
调用示例
Objective-C
- (void)createInvitation:(long long)homeId {
[[ThingSmartMemberBiz sharedInstance] createInvitationWithHomeId:homeId success:^(ThingSmartHomeInvitationResultModel * _Nonnull invitationResultModel) {
} failure:^(NSError *error) {
}];
}
Swift
func createInvitation(homeId:Int64) {
ThingSmartMemberBiz.sharedInstance().createInvitation(withHomeId: homeId) { invitation in
} failure: { error in
}
}
邀请码超过有效期之后,用户不能通过之前生成的邀请码加入家庭,可以调用该接口重新生成邀请码,邀请 ID 不变。
接口说明
- (void)reinviteInvitationWithInvitationId:(NSNumber *)invitationId
success:(void(^)(ThingSmartHomeInvitationResultModel *invitationResultModel))success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
invitationId | 邀请 ID |
success | 成功回调 |
failure | 失败回调 |
调用示例
Objective-C
- (void)reinviteInvitation:(NSNumber *)invitationId {
[[ThingSmartMemberBiz sharedInstance] reinviteInvitationWithInvitationId:invitationId success:^(ThingSmartHomeInvitationResultModel * _Nonnull invitationResultModel) {
} failure:^(NSError *error) {
}];
}
Swift
func reinviteInvitation(invitationId:NSNumber) {
ThingSmartMemberBiz.sharedInstance().reinviteInvitation(withInvitationId: invitationId) { invitation in
} failure: { error in
}
}
调用接口撤销邀请码后,用户不能通过之前生成的邀请码加入家庭。
接口说明
- (void)cancelInvitationWithInvitationId:(NSNumber *)invitationId
success:(ThingSuccessBOOL)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
invitationId | 邀请 ID |
success | 成功回调 |
failure | 失败回调 |
调用示例
Objective-C
- (void)cancelInvitation:(NSNumber *)invitationId {
[[ThingSmartMemberBiz sharedInstance] cancelInvitationWithInvitationId:invitationId success:^(BOOL result) {
} failure:^(NSError *error) {
}];
}
Swift
func cancelInvitation(invitationId:NSNumber) {
ThingSmartMemberBiz.sharedInstance().cancelInvitation(withInvitationId: invitationId) { result in
} failure: { error in
}
}
修改被邀请者信息,更新邀请码。
接口说明
- (void)updateInvitationWithModel:(ThingSmartHomeInvitationInfoRequestModel *)invitationInfoRequestModel
success:(ThingSuccessBOOL)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
invitationInfoRequestModel | 更新邀请码请求模型 |
success | 成功回调 |
failure | 失败回调 |
ThingSmartHomeInvitationInfoRequestModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
invitationID | NSString | 邀请 ID |
name | NSString | 邀请标识名称 |
调用示例
Objective-C
- (void)updateInvitation:(ThingSmartHomeInvitationInfoRequestModel *)model {
ThingSmartHomeInvitationInfoRequestModel *requestModel = [[ThingSmartHomeInvitationInfoRequestModel alloc] init];
requestModel.invitationID = [NSNumber new];
requestModel.name = @"";
[[ThingSmartMemberBiz sharedInstance] updateInvitationWithModel:model success:^(BOOL result) {
} failure:^(NSError *error) {
}];
}
Swift
func updateInvitation(invitationId:NSNumber) {
let requestModel = ThingSmartHomeInvitationInfoRequestModel()
requestModel.invitationID = invitationId
requestModel.name = ""
ThingSmartMemberBiz.sharedInstance().updateInvitation(with: requestModel) { result in
} failure: { error in
}
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈