用户相关

更新时间: 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 列表。
  • 如果为空或传入的账号 ID 都不存在则返回 191004 参数错误。
  • 单次最多查询 150 个用户的资料,超过返回 191004 参数错误。
  • 示例代码

    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>>:查询到的用户信息列表

    相关回调

    此文档是否对你有帮助?
    有帮助
    去反馈
    • API 概览
    • 用户资料监听
    • 用户资料操作
    • 接口类
    • add
    • cancel
    • getUserList
    • updateSelfUserProfile
    • addUserToBlockList
    • removeUserFromBlockList
    • getBlockList
    • searchUserByOption
    • getUserListFromCloud