用户信息托管
本文档旨在帮助开发者了解如何在融云即时通讯 iOS 客户端 SDK 中实现用户信息订阅、查询和监听,同时对用户信息与权限进行修改、查询。 通过本文档,您将了解如何获取和跟踪用户信息,以及如何在用户信息变更、订阅状态变更时接收到通知。
此功能在 5.10.0 版本开始支持。
开通服务
您在使用用户信息托管功能前,须在控制台开通信息托管服务。
管理用户信息
融云 IMLib SDK 提供了对用户信息的查询、订阅以及修改您自己的用户信息的相关接口。
设置用户信息
您可以使用 updateMyUserProfile:success:error:
接口来修改您的用户信息,您需要设置的相关用户信息可以通过创建 RCUserProfile
对象来配置相关属性。
默认情况下,您设置的资料信息不会进行审核。如需要开通审核功能,请前往[控制台],选择应用配置>安全&审核>IM & 音视频审核>IM 信息托管配置,开启并设置需要审核的内容。
接口原型
- (void)updateMyUserProfile:(RCUserProfile *)profile
successBlock:(void (^)(void))successBlock
errorBlock:(nullable void (^)(RCErrorCode errorCode, NSArray<NSString *> * _Nullable errorKeys))errorBlock;
参数说明
RCUserProfile 属性介绍:
属性名 | 类型 | 描述 |
---|---|---|
name | NSString | 昵称,长度不超过 32 个字符。 |
portraitUri | NSString | 头像地址,长度不超过 128 个字符。 |
uniqueId | NSString | 用户应用号,支持大小写字母、数字,长度不超过 32 个字符。请注意 客户端 SDK 不支持设置此字段。 |
NSString | Email,长度不超过 128 个字符。 | |
birthday | NSString | 生日,长度不超过 32 个字符 |
gender | RCUserGender | 性别 |
location | NSString | 所在地,长度不超过 32 个字符。 |
role | NSUInteger | 角色,支持 0~100 以内数字。 |
level | NSUInteger | 级别,支持 0~100 以内数字。 |
userExtProfile | NSDictionary<NSString *, NSString *> | 自定义扩展信息,您最多可以设置 20 个用户信息(以 Key、Value 方式设置,扩展用户信息的 Key 需在开发者后台提前进行设置)
|
示例代码
RCUserProfile *userProfile = [[RCUserProfile alloc] init];
userProfile.name = @"name";
[[RCCoreClient sharedCoreClient] updateMyUserProfile:userProfile success:^{
// 更新成功
} error:^(RCErrorCode errorCode, NSArray<NSString *> * _Nullable errorKeys) {
// 更新失败
// errorCode == RC_SERVICE_INFORMATION_AUDIT_FAILED 时,errorKeys 会返回审核未通过的属性名(如 name)
}];
获取当前用户信息
您 可以使用 getMyUserProfile:error:
方法获取您自己的用户信息。
示例代码
[[RCCoreClient sharedCoreClient] getMyUserProfile:^(RCUserProfile *userProfile) {
// 获取成功
} error:^(RCErrorCode errorCode) {
// 获取失败
}];
批量获取他人用户信息
您可以使用 getUserProfiles:success:error:
方法,通过传入指定用户的 userId 来查询指定用户的用户信息。
- 单次最多查询 20 个用户的用户信息。
示例代码
NSArray *userIds = @[@"userId1", @"userId2"];
[[RCCoreClient sharedCoreClient] getUserProfiles:userIds success:^(NSArray<RCUserProfile *> *userProfiles) {
// 获取成功
} error:^(RCErrorCode errorCode) {
// 获取失败
}];
管理用户权限
融云 IMLib SDK 提供了对用户级别用户权限进行设置和获取接口,通过接口设置 RCUserProfileVisibility
枚举来设置不同的用户权限。
枚举值 | 用户权限 |
---|---|
RCUserProfileVisibilityNotSet | 未设置:以 AppKey 设置的权限为准,默认是此 状态。 |
RCUserProfileVisibilityInvisible | 都不可见:任何人都不能搜索到您除了名称、头像以外的用户信息。 |
RCUserProfileVisibilityEveryone | 所有人:AppKey 下的任何用户都可以查看到您的用户信息。 |
用户权限说明
AppKey 下默认用户信息访问权限为 都不可见,用户级别默认用户信息访问权限为 未设置。当您都未设置也就是二者访问权限都为默认值时, 您仅可查看他人的用户名和头像信息。
下面列举了 AppKey 级
权限与 用户级
权限综合说明:
AppKey 级权限 | 用户级权限 | 结果 |
---|---|---|
都不可见、仅好友可见、所有人可见 | 未设置 | 以 AppKey 级权限设置为准 |
都不可见、仅好友可见、所有人可见 | 设置为(都不可见、仅好友可见、所有人可见) | 以用户级权限设置为准 |
设置用户权限
您可以使用 updateMyUserProfileVisibility:success:error
方法设置您自己的用户信息访问权限。
示例代码
[[RCCoreClient sharedCoreClient] updateMyUserProfileVisibility:RCUserProfileVisibilityEveryone success:^{
// 修改成功
} error:^(RCErrorCode errorCode) {
// 修改失败
}];
获取用户权限
您可以使用 getMyUserProfileVisibility:
方法获取您自己的用户信息访问权限。
示例代码
[[RCCoreClient sharedCoreClient] getMyUserProfileVisibility:^(RCUserProfileVisibility visibility) {
// 获取成功
} error:^(RCErrorCode errorCode) {
// 获取失败
}];