用户相关
更新时间: 2024/10/31 15:28:56
网易云信即时通讯 SDK(NetEase IM SDK,以下简称 NIM SDK)提供用户资料的托管,支持更新自己的用户信息,更新自己的黑名单列表等。
用户资料包括用户昵称、性别、头像、签名、手机、邮箱、生日等信息。
本文介绍用户资料相关的 API。更多用户资料相关功能请参考开发指南文档 用户管理。
API 概览
用户资料监听
API | 说明 | 起始版本 |
---|---|---|
add | 注册用户资料相关监听器 | v10.3.0 |
cancel | 取消注册用户资料相关监听器 | v10.3.0 |
用户资料操作
API | 说明 | 起始版本 |
---|---|---|
getUserList | 根据用户账号 ID 列表获取用户资料 | v10.3.0 |
updateSelfUserProfile | 更新自己的用户资料 | v10.3.0 |
addUserToBlockList | 添加指定用户进黑名单 | v10.3.0 |
removeUserFromBlockList | 将指定用户移出黑名单 | v10.3.0 |
getBlockList | 获取黑名单用户列表 | v10.3.0 |
searchUserByOption | 根据关键字信息搜索用户信息 | v10.3.0 |
getUserListFromCloud | 根据用户账号列表从服务器获取用户信息 | v10.3.0 |
接口类
UserService
类提供用户资料相关接口,包括注册用户资料监听,获取、更新用户资料,拉黑用户等接口。
add
接口描述
注册用户资料相关监听。
注册成功后,当事件发生时,SDK 会返回对应的回调。
- 建议在初始化后调用该方法。
- 全局只需注册一次。
- 该方法为同步。
回调事件
onUserProfileChanged
:用户资料变更回调,返回变更的用户资料列表。onBlockListAdded
:黑名单新增用户回调,返回新加入黑名单的用户列表,包括本端直接添加进黑名单的用户和其他端同步的新增的黑名单用户。onBlockListRemoved
:黑名单移除用户回调,返回移出黑名单的用户列表,包括本端直接移出黑名单的用户和其他端同步的移出黑名单的用户。
示例代码
dartsubsriptions.add(NimCore.instance.userService.onUserProfileChanged.listen((e) {
//do something
}));
subsriptions.add(NimCore.instance.userService.onBlockListAdded.listen((e) {
//do something
}));
subsriptions.add(NimCore.instance.userService.onBlockListRemoved.listen((e) {
//do something
}));
cancel
接口描述
取消注册用户资料相关监听。
该方法为同步。
示例代码
dartsubsriptions.forEach((subsription) {
subsription.cancel();
});
getUserList
接口描述
根据用户账号 ID 批量查询用户资料列表。
该方法根据用户账号 ID 先从客户端本地获取用户资料数据,若本地数据缺失或不足,再查询服务端中的用户资料数据。
- 单次最多查询 150 个用户资料。
- 若传入的账号 ID 都不存在,则调用接口失败;若部分账号 ID 存在,则调用接口成功。调用结果只返回账号 ID 存在的用户资料,错误的账号 ID 不返回。
参数说明
dartFuture<NIMResult<List<NIMUserInfo>>> getUserList(List<String> accountIds) async {
return _platform.getUserList(accountIds);
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
accountIds |
List<String> | 是 | 需要查询用户资料的账号 ID 列表。 |
示例代码
dartawait NimCore.instance.userService.getUserList(accountIds)
返回值
NIMResult<List<NIMUserInfo>>:查询到的用户资料列表
相关回调
无
updateSelfUserProfile
接口描述
更新自己的用户资料。
更新用户资料成功后,SDK 会返回用户资料变更回调 onUserProfileChanged
。
更新前请确保该用户资料已存在。
参数说明
dartFuture<NIMResult<void>> updateSelfUserProfile(
NIMUserUpdateParam param) async {
return _platform.updateSelfUserProfile(param);
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
param |
NIMUserUpdateParam |
是 | 用户资料更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。 |
示例代码
dartawait NimCore.instance.userService.updateSelfUserProfile(param)
返回值
NIMResult<void>
相关回调
onUserProfileChanged
:用户资料变更回调
addUserToBlockList
接口描述
添加指定用户进黑名单。
添加成功后,SDK 会返回黑名单新增用户回调 onBlockListAdded
。
参数说明
dartFuture<NIMResult<void>> addUserToBlockList(String accountId) async {
return _platform.addUserToBlockList(accountId);
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
accountId |
String | 是 | 需要添加进黑名单的用户账号 ID。 |
示例代码
dartawait NimCore.instance.userService.addUserToBlockList(accountId)
返回值
NIMResult<void>
相关回调
onBlockListAdded
:黑名单新增用户回调
removeUserFromBlockList
接口描述
将指定用户移出黑名单。
移除成功后,黑名单移除用户回调 onBlockListRemoved
。
参数说明
dartFuture<NIMResult<void>> removeUserFromBlockList(String accountId) async {
return _platform.removeUserFromBlockList(accountId);
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
accountId |
String | 是 | 需要移出黑名单的用户账号 ID。 |
示例代码
dartawait NimCore.instance.userService.removeUserFromBlockList(accountId)
返回值
NIMResult<void>
相关回调
onBlockListAdded
:黑名单新增用户回调
getBlockList
接口描述
获取黑名单用户列表。
参数说明
dartFuture<NIMResult<List<String>>> getBlockList() async {
return _platform.getBlockList();
}
示例代码
dartawait NimCore.instance.userService.getBlockList()
返回值
NIMResult<List<String>>:查询到的黑名单用户账号 ID 列表
相关回调
无
searchUserByOption
接口描述
根据关键字信息搜索用户信息。
参数说明
dartFuture<NIMResult<List<NIMUserInfo>>> searchUserByOption(
NIMUserSearchOption userSearchOption) async {
return _platform.searchUserByOption(userSearchOption);
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
userSearchOption |
NIMUserSearchOption |
是 | 用户搜索的相关配置参数。 |
示例代码
dartawait NimCore.instance.userService.searchUserByOption(userSearchOption)
返回值
NIMResult<List<NIMUserInfo>>:查询到的用户信息列表
相关回调
无
getUserListFromCloud
接口描述
根据用户账号列表从服务器获取用户信息。
查询用户信息一般建议使用 getUserList 接口,只有需要强制拉取最新用户信息才需要调用 getUserListFromCloud
接口。
参数说明
dartFuture<NIMResult<List<NIMUserInfo>>> getUserListFromCloud(
List<String> accountIds) async {
return _platform.getUserListFromCloud(accountIds);
}
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
accountIds |
List<String> | 是 | 需要获取用户信息的账号列表,单次最多查询 150 个用户信息。 |
示例代码
dartawait NimCore.instance.userService.getUserListFromCloud(accountIds)
返回值
NIMResult<List<NIMUserInfo>>:查询到的用户信息列表
相关回调
无