用户相关

更新时间: 2024/11/14 11:43:49

网易云信即时通讯 SDK(NetEase IM SDK,以下简称 NIM SDK)提供用户资料的托管,支持更新自己的用户信息,更新自己的黑名单列表等。

用户资料包括用户昵称、性别、头像、签名、手机、邮箱、生日等信息。

本文介绍用户资料相关的 API。更多用户资料相关功能请参考开发指南文档 用户管理

支持平台

本文内容适用的开发平台或框架如下表所示:

Android iOS macOS/Windows Web/uni-app/小程序 Node.js/Electron HarmonyOS
✔️️ ✔️️ ✔️️ ✔️️ ✔️️ ✔️️

API 概览

用户资料监听

Android/iOS/macOS/Windows
API 说明 起始版本
addUserListener 注册用户资料相关监听器 v10.2.0
removeUserListener 移除用户资料相关监听器 v10.2.0
Web/uni-app/小程序/Node.js/Electron/HarmonyOS
API 说明 起始版本
on("EventName") 注册用户资料相关监听 v10.2.0(对应 HarmonyOS v0.5.0)
off("EventName") 取消用户资料相关监听 v10.2.0(对应 HarmonyOS v0.5.0)

用户资料操作

API 说明 起始版本
getUserList 根据用户账号 ID 列表获取用户资料 v10.2.0(对应 HarmonyOS v0.5.0)
updateSelfUserProfile 更新自己的用户资料 v10.2.0(对应 HarmonyOS v0.5.0)
addUserToBlockList 添加指定用户进黑名单 v10.2.0(对应 HarmonyOS v0.5.0)
removeUserFromBlockList 将指定用户移出黑名单 v10.2.0(对应 HarmonyOS v0.5.0)
getBlockList 获取黑名单用户列表 v10.2.0(对应 HarmonyOS v0.5.0)
searchUserByOption 根据关键字信息搜索用户信息
  • Android/iOS/macOS/Windows/Web:v10.2.2
  • HarmonyOS 暂不支持
  • getUserListFromCloud 根据用户账号列表从服务器获取用户信息
  • Android/iOS/Web:v10.2.6
  • macOS/Windows:v10.3.1
  • HarmonyOS:v1.4.0
  • 接口类

    V2NIMUserService 类提供用户资料相关接口,包括注册用户资料监听,获取、更新用户资料,拉黑用户等接口。

    addUserListener

    接口描述

    注册用户资料监听器。

    注册成功后,当事件发生时,SDK 会返回对应的回调。

    • 建议在初始化后调用该方法。

    • 全局只需注册一次。

    • 该方法为同步。

    参数说明

    Android
    Javavoid addUserListener(V2NIMUserListener listener);
    
    参数名称 类型 是否必填 说明
    listener V2NIMUserListener 用户资料相关监听器
    iOS
    Objective-C- (void)addUserListener:(id<V2NIMUserListener>)listener;
    
    参数名称 类型 是否必填 说明
    listener V2NIMUserListener 用户资料相关监听器
    macOS/Windows
    C++virtual void addUserListener(V2NIMUserListener listener) = 0;
    
    参数名称 类型 是否必填 说明
    listener V2NIMUserListener 用户资料相关监听器

    示例代码

    Android
    JavaNIMClient.getService(V2NIMUserService.class).addUserListener(new V2NIMUserListener() {
        @Override
        public void onUserProfileChanged(List<V2NIMUser> users) {
    
        }
    
        @Override
        public void onBlockListAdded(V2NIMUser user) {
    
        }
    
        @Override
        public void onBlockListRemoved(String accountId) {
    
        }
    });
    
    iOS
    Objective-C[[[NIMSDK sharedSDK] v2UserService] addUserListener:self];
    - (void)onUserProfileChanged:(NSArray<V2NIMUser *> *)users {
    }
    - (void)onBlockListAdded:(V2NIMUser *)user {
    }
    - (void)onBlockListRemoved:(NSString *)accountId {
    }
    
    macOS/Windows
    C++V2NIMUserListener listener;
    listener.onUserProfileChanged = [](std::vector<V2NIMUser> users) {
        // user profile changed
    };
    listener.onBlockListAdded = [](V2NIMUser user) {
        // user added to blocklist
    };
    listener.onBlockListRemoved = [](std::string accountId) {
        // user removed from blocklist
    };
    userService.addUserListener(listener);
    

    返回值

    无。

    removeUserListener

    接口描述

    移除用户资料监听器。

    该方法为同步。

    参数说明

    Android
    Javavoid removeUserListener(V2NIMUserListener listener);
    
    参数名称 类型 是否必填 说明
    listener V2NIMUserListener 用户资料相关监听器
    iOS
    Objective-C- (void)removeUserListener:(id<V2NIMUserListener>)listener;
    
    参数名称 类型 是否必填 说明
    listener V2NIMUserListener 用户资料相关监听器
    macOS/Windows
    C++virtual void removeUserListener(V2NIMUserListener listener) = 0;
    
    参数名称 类型 是否必填 说明
    listener V2NIMUserListener 用户资料相关监听器

    示例代码

    Android
    JavaNIMClient.getService(V2NIMUserService.class).removeUserListener(listener);
    
    iOS
    Objective-C[[[NIMSDK sharedSDK] v2UserService] removeUserListener:self];
    
    macOS/Windows
    C++V2NIMUserListener listener;
    // ...
    userService.addUserListener(listener);
    // ...
    userService.removeUserListener(listener);
    

    返回值

    无。

    on("EventName")

    接口描述

    注册用户资料相关监听。

    注册成功后,当事件发生时,SDK 会返回对应的回调。

    • 建议在初始化后调用该方法。

    • 全局只需注册一次。

    • 该方法为同步。

    参数说明

    Web/uni-app/小程序
    TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
      /**
       * 继承自 eventEmitter3 的监听事件方法
       */
      on<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
      /**
       * 继承自 eventEmitter3 的监听事件方法
       */
      once<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
    }
    
    参数名称 类型 是否必填 说明
    eventName V2NIMUserListener 事件名称:
  • onUserProfileChanged:用户资料变更回调,返回变更的用户资料列表。
  • onBlockListAdded:黑名单新增用户回调,返回新加入黑名单的用户列表,包括本端直接添加进黑名单的用户和其他端同步的新增的黑名单用户。
  • onBlockListRemoved:黑名单移除用户回调,返回移出黑名单的用户列表,包括本端直接移出黑名单的用户和其他端同步的移出黑名单的用户。
  • fn function 监听事件的回调函数。当事件触发时,会调用该函数进行处理。
    Node.js/Electron
    TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
      /**
       * 继承自 eventEmitter3 的监听事件方法
       */
      on<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
      /**
       * 继承自 eventEmitter3 的监听事件方法
       */
      once<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
    }
    
    参数名称 类型 是否必填 说明
    eventName V2NIMUserListener 事件名称:
  • userProfileChanged:用户资料变更回调,返回变更的用户资料列表。
  • blockListAdded:黑名单新增用户回调,返回新加入黑名单的用户列表,包括本端直接添加进黑名单的用户和其他端同步的新增的黑名单用户。
  • blockListRemoved:黑名单移除用户回调,返回移出黑名单的用户列表,包括本端直接移出黑名单的用户和其他端同步的移出黑名单的用户。
  • fn function 监听事件的回调函数。当事件触发时,会调用该函数进行处理。
    HarmonyOS
    TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
      /**
       * 继承自 eventEmitter3 的监听事件方法
       */
      on<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
      /**
       * 继承自 eventEmitter3 的监听事件方法
       */
      once<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
    }
    
    参数名称 类型 是否必填 说明
    eventName V2NIMUserListener 事件名称:
  • onUserProfileChanged:用户资料变更回调,返回变更的用户资料列表。
  • onBlockListAdded:黑名单新增用户回调,返回新加入黑名单的用户列表,包括本端直接添加进黑名单的用户和其他端同步的新增的黑名单用户。
  • onBlockListRemoved:黑名单移除用户回调,返回移出黑名单的用户列表,包括本端直接移出黑名单的用户和其他端同步的移出黑名单的用户。
  • fn function 监听事件的回调函数。当事件触发时,会调用该函数进行处理。

    示例代码

    Web/uni-app/小程序
    TypeScriptnim.V2NIMUserService.on("onUserProfileChanged", function (users: V2NIMUser[]) {})
    nim.V2NIMUserService.on("onBlockListAdded", function (user: V2NIMUser) {})
    nim.V2NIMUserService.on("onBlockListRemoved", function (accountId: string) {})
    
    Node.js/Electron
    TypeScriptv2.userService.on("userProfileChanged", function (users: V2NIMUser[]) {})
    v2.userService.on("blockListAdded", function (user: V2NIMUser) {})
    v2.userService.on("blockListRemoved", function (accountId: string) {})
    
    HarmonyOS
    TypeScriptnim.userService.on("onUserProfileChanged", function (users: V2NIMUser[]) {})
    nim.userService.on("onBlockListAdded", function (user: V2NIMUser) {})
    nim.userService.on("onBlockListRemoved", function (accountId: string) {})
    

    返回值

    无。

    off("EventName")

    接口描述

    取消注册用户资料相关监听。

    该方法为同步。

    参数说明

    Web/uni-app/小程序
    TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
      /**
       * 继承自 eventEmitter3 的取消监听方法
       */
      off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
      /**
       * 继承自 eventEmitter3 的移除事件方法
       */
      removeAllListeners<T extends keyof I>(eventName?: T): void
    }
    
    参数名称 类型 是否必填 说明
    eventName V2NIMUserListener 事件名称:
  • onUserProfileChanged:用户资料变更回调,返回变更的用户资料列表。
  • onBlockListAdded:黑名单新增用户回调,返回新加入黑名单的用户列表,包括本端直接添加进黑名单的用户和其他端同步的新增的黑名单用户。
  • onBlockListRemoved:黑名单移除用户回调,返回移出黑名单的用户列表,包括本端直接移出黑名单的用户和其他端同步的移出黑名单的用户。
  • fn function 监听事件的回调函数。当事件触发时,会调用该函数进行处理。
    Node.js/Electron
    TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
      /**
       * 继承自 eventEmitter3 的取消监听方法
       */
      off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
      /**
       * 继承自 eventEmitter3 的移除事件方法
       */
      removeAllListeners<T extends keyof I>(eventName?: T): void
    }
    
    参数名称 类型 是否必填 说明
    eventName V2NIMUserListener 事件名称:
  • userProfileChanged:用户资料变更回调,返回变更的用户资料列表。
  • blockListAdded:黑名单新增用户回调,返回新加入黑名单的用户列表,包括本端直接添加进黑名单的用户和其他端同步的新增的黑名单用户。
  • blockListRemoved:黑名单移除用户回调,返回移出黑名单的用户列表,包括本端直接移出黑名单的用户和其他端同步的移出黑名单的用户。
  • fn function 监听事件的回调函数。当事件触发时,会调用该函数进行处理。
    HarmonyOS
    TypeScriptexport interface NIMEBaseServiceInterface<I extends NIMEBaseListener> {
      /**
       * 继承自 eventEmitter3 的取消监听方法
       */
      off<T extends keyof I>(eventName: T, fn: (...args: I[T]) => void): void
      /**
       * 继承自 eventEmitter3 的移除事件方法
       */
      removeAllListeners<T extends keyof I>(eventName?: T): void
    }
    
    参数名称 类型 是否必填 说明
    eventName V2NIMUserListener 事件名称:
  • onUserProfileChanged:用户资料变更回调,返回变更的用户资料列表。
  • onBlockListAdded:黑名单新增用户回调,返回新加入黑名单的用户列表,包括本端直接添加进黑名单的用户和其他端同步的新增的黑名单用户。
  • onBlockListRemoved:黑名单移除用户回调,返回移出黑名单的用户列表,包括本端直接移出黑名单的用户和其他端同步的移出黑名单的用户。
  • fn function 监听事件的回调函数。当事件触发时,会调用该函数进行处理。

    示例代码

    Web/uni-app/小程序
    TypeScriptnim.V2NIMUserService.off("onUserProfileChanged", function (users: V2NIMUser[]) {})
    nim.V2NIMUserService.off("onBlockListAdded", function (user: V2NIMUser) {})
    nim.V2NIMUserService.off("onBlockListRemoved", function (accountId: string) {})
    
    Node.js/Electron
    TypeScriptv2.userService.off("userProfileChanged", function (users: V2NIMUser[]) {})
    v2.userService.off("blockListAdded", function (user: V2NIMUser) {})
    v2.userService.off("blockListRemoved", function (accountId: string) {})
    
    HarmonyOS
    TypeScriptnim.userService.off("onUserProfileChanged", function (users: V2NIMUser[]) {})
    nim.userService.off("onBlockListAdded", function (user: V2NIMUser) {})
    nim.userService.off("onBlockListRemoved", function (accountId: string) {})
    

    返回值

    无。

    getUserList

    接口描述

    根据用户账号 ID 批量查询用户资料列表。

    该方法根据用户账号 ID 先从客户端本地获取用户资料数据,若本地数据缺失或不足,再查询服务端中的用户资料数据。

    • 单次最多查询 150 个用户资料。
    • 若传入的账号 ID 都不存在,则调用接口失败。若部分账号 ID 存在,则调用接口成功。调用结果只返回账号 ID 存在的用户资料,错误的账号 ID 不返回。

    参数说明

    Android
    Javavoid getUserList(List<String> accountIds, V2NIMSuccessCallback<List<V2NIMUser>> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 说明
    accountIds List<String> 需要查询用户资料的账号 ID 列表。
  • 如果为空或传入的账号 ID 都不存在则返回 191004 参数错误。
  • 单次最多查询 150 个用户的资料,超过返回 191004 参数错误。
  • success V2NIMSuccessCallback 获取用户资料成功回调,返回 V2NIMUser 用户资料列表。
    failure V2NIMFailureCallback 获取用户资料失败回调,返回 错误码
    iOS
    Objective-C- (void)getUserList:(NSArray<NSString *> *)accountIds
                success:(nullable V2NIMGetUserListSuccess)success
                failure:(nullable V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 说明
    accountIds NSArray<NSString *> 需要查询用户资料的账号 ID 列表。
  • 如果为空或传入的账号 ID 都不存在则返回 191004 参数错误。
  • 单次最多查询 150 个用户的资料,超过返回 191004 参数错误。
  • success V2NIMGetUserListSuccess 获取用户资料成功回调,可自定义设置。
    failure V2NIMFailureCallback 获取用户资料失败回调,返回 错误码
    macOS/Windows
    C++virtual void getUserList(nstd::vector<nstd::string> accountIds,
        V2NIMSuccessCallback<nstd::vector<V2NIMUser>> success,
        V2NIMFailureCallback failure) = 0;
    
    参数名称 类型 是否必填 说明
    accountIds nstd::vector<nstd::string> 需要查询用户资料的账号 ID 列表。
  • 如果为空或传入的账号 ID 都不存在则返回 191004 参数错误。
  • 单次最多查询 150 个用户的资料,超过返回 191004 参数错误。
  • success V2NIMSuccessCallback 获取用户资料成功回调,返回 V2NIMUser 用户资料列表。
    failure V2NIMFailureCallback 获取用户资料失败回调,返回 错误码
    Web/uni-app/小程序
    TypeScriptgetUserList(accountIds: string[]): Promise<V2NIMUser[]>
    
    参数名称 类型 是否必填 说明
    accountIds string[] 需要查询用户资料的账号 ID 列表。
  • 如果为空或传入的账号 ID 都不存在则返回 191004 参数错误。
  • 单次最多查询 150 个用户的资料,超过返回 191004 参数错误。
  • Node.js/Electron
    TypeScriptgetUserList(accountIds): Promise<V2NIMUser[]>
    
    参数名称 类型 是否必填 说明
    accountIds string[] 需要查询用户资料的账号 ID 列表。
  • 如果为空或传入的账号 ID 都不存在则返回 191004 参数错误。
  • 单次最多查询 150 个用户的资料,超过返回 191004 参数错误。
  • HarmonyOS
    TypeScriptgetUserList(accountIds: string[]): Promise<V2NIMUser[]>
    
    参数名称 类型 是否必填 说明
    accountIds string[] 需要查询用户资料的账号 ID 列表。
  • 如果为空或传入的账号 ID 都不存在则返回 191004 参数错误。
  • 单次最多查询 150 个用户的资料,超过返回 191004 参数错误。
  • 示例代码

    Android
    JavaNIMClient.getService(V2NIMUserService.class).getUserList(accountIds,
        new V2NIMSuccessCallback<List<V2NIMUser>>() {
            @Override
            public void onSuccess(List<V2NIMUser> v2NIMUsers) {
                // TODO: Implement onSuccess logic
            }
        },
        new V2NIMFailureCallback() {
            @Override
            public void onFailure(V2NIMError error) {
                // TODO: Implement onFailure logic
            }
        });
    
    iOS
    Objective-C[[[NIMSDK sharedSDK] v2UserService] getUserList:@[@"accountId1",@"accountId2"] success:^(NSArray<V2NIMUser *> * _Nonnull result) {
        // 成功回调
    } failure:^(V2NIMError * _Nonnull error) {
        // 失败回调
    }];
    
    macOS/Windows
    C++nstd::vector<nstd::string> accountIds = {"test1", "test2"};
    userService.getUserList(
        accountIds,
        [](nstd::vector<V2NIMUser> users) {
            for (auto&& user : users) {
                // do something
            }
        },
        [](V2NIMError error) {
            // get user list failed, handle error
        });
    
    Web/uni-app/小程序
    TypeScriptconst userProfiles = await nim.V2NIMUserService.getUserList(['accid1', 'accid2'])
    
    Node.js/Electron
    TypeScriptconst users = await v2.userService.getUserList(accountIds)
    
    HarmonyOS
    TypeScriptconst userProfiles = await nim.userService.getUserList(['accid1', 'accid2'])
    

    返回值

    Android/iOS/macOS/Windows

    无返回值。

    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    Promise<V2NIMUser[]>:查询到的用户资料列表。

    相关回调

    Android/macOS/Windows
    • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMUser 用户资料列表。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料知相关错误码。
    iOS
    • 请求成功,返回 V2NIMGetUserListSuccess 回调,可自定义设置。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料知相关错误码。
    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    无。

    updateSelfUserProfile

    接口描述

    更新自己的用户资料。

    更新用户资料成功后,SDK 会返回用户资料变更回调 onUserProfileChanged

    更新前请确保该用户资料已存在。

    参数说明

    Android
    Javavoid updateSelfUserProfile(V2NIMUserUpdateParams updateParams, V2NIMSuccessCallback<List<Void>> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 说明
    updateParams V2NIMUserUpdateParams 用户资料更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。
    success V2NIMSuccessCallback 更新用户资料成功回调。
    failure V2NIMFailureCallback 更新用户资料失败回调,返回 错误码
    iOS
    Objective-C- (void)updateSelfUserProfile:(V2NIMUserUpdateParams *)updateParams
                         success:(nullable V2NIMSuccessCallback)success
                         failure:(nullable V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 说明
    updateParams V2NIMUserUpdateParams 用户资料更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。
    success V2NIMSuccessCallback 更新用户资料成功回调。
    failure V2NIMFailureCallback 更新用户资料失败回调,返回 错误码
    macOS/Windows
    C++virtual void updateSelfUserProfile(V2NIMUserUpdateParams updateParams, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
    
    参数名称 类型 是否必填 说明
    updateParams V2NIMUserUpdateParams 用户资料更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。
    success V2NIMSuccessCallback 更新用户资料成功回调。
    failure V2NIMFailureCallback 更新用户资料失败回调,返回 错误码
    Web/uni-app/小程序
    TypeScriptupdateSelfUserProfile(updateParams: V2NIMUserUpdateParams): Promise<void>
    
    参数名称 类型 是否必填 说明
    updateParams V2NIMUserUpdateParams 用户资料更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。
    Node.js/Electron
    TypeScriptupdateSelfUserProfile(updateParams): Promise<void>
    
    参数名称 类型 是否必填 说明
    updateParams V2NIMUserUpdateParams 用户资料更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。
    HarmonyOS
    TypeScriptupdateSelfUserProfile(updateParams: V2NIMUserUpdateParams): Promise<void>
    
    参数名称 类型 是否必填 说明
    updateParams V2NIMUserUpdateParams 用户资料更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。

    示例代码

    Android
    JavaV2NIMUserUpdateParams updateParams = V2NIMUserUpdateParams.V2NIMUserUpdateParamsBuilder.builder()
        .withAvatar(avatar)
        .withBirthday(birthday)
        .withEmail(email)
        .withGender(gender)
        .withMobile(mobile)
        .withName(name)
        .withServerExtension(serverExtension)
        .withSign(sign)
        .build();
    
    NIMClient.getService(V2NIMUserService.class).updateSelfUserProfile(updateParams,
    new V2NIMSuccessCallback<List<Void>>() {
        @Override
        public void onSuccess(List<Void> voids) {
            // 处理成功回调
        }
    },
    new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
            // 处理失败回调
        }
    });
    
    iOS
    Objective-C[[[NIMSDK sharedSDK] v2UserService] updateSelfUserProfile:userService success:^{
        //成功回调
    } failure:^(V2NIMError * _Nonnull error) {
        //失败回调
    }];
    
    macOS/Windows
    C++V2NIMUserUpdateParams updateParams;
    updateParams.name = "name";
    userService.updateSelfUserProfile(
        updateParams,
        []() {
            // update success
        },
        [](V2NIMError error) {
            // update failed, handle error
        });
    
    Web/uni-app/小程序
    TypeScriptnim.V2NIMUserService.updateSelfUserProfile({
        name: 'ab',
    });
    
    Node.js/Electron
    TypeScriptawait v2.userService.updateSelfUserProfile(updateParams)
        name: 'ab',
    });
    
    HarmonyOS
    TypeScriptnim.userService.updateSelfUserProfile({
        name: 'ab'
    })
    

    返回值

    Android/iOS/macOS/Windows

    无返回值。

    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/macOS/Windows
    • 请求成功,返回 V2NIMSuccessCallback 回调。更新成功,返回 onUserProfileChanged 回调。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料知相关错误码。
    Web/uni-app/小程序/HarmonyOS

    更新成功,返回 onUserProfileChanged 回调。

    Node.js/Electron

    更新成功,返回 userProfileChanged 回调。

    addUserToBlockList

    接口描述

    添加指定用户进黑名单。

    添加成功后,SDK 会返回用户黑名单增加回调 onBlockListAdded

    参数说明

    Android
    Javavoid addUserToBlockList(String accountId, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 说明
    accountId String 需要添加进黑名单的用户账号 ID。
    success V2NIMSuccessCallback 添加成功回调。
    failure V2NIMFailureCallback 添加失败回调,返回 错误码
    iOS
    Objective-C- (void)addUserToBlockList:(NSString *)accountId
                       success:(nullable V2NIMSuccessCallback)success
                       failure:(nullable V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 说明
    accountId NSString * 需要添加进黑名单的用户账号 ID。
    success V2NIMSuccessCallback 添加成功回调。
    failure V2NIMFailureCallback 添加失败回调,返回 错误码
    macOS/Windows
    C++virtual void addUserToBlockList(nstd::string accountId, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
    
    参数名称 类型 是否必填 说明
    accountId nstd::string 需要添加进黑名单的用户账号 ID。
    success V2NIMSuccessCallback 添加成功回调。
    failure V2NIMFailureCallback 添加失败回调,返回 错误码
    Web/uni-app/小程序
    TypeScriptaddUserToBlockList(accountId: string): Promise<void>
    
    参数名称 类型 是否必填 说明
    accountId string 需要添加进黑名单的用户账号 ID。
    Node.js/Electron
    TypeScriptaddUserToBlockList(accountId): Promise<void>
    
    参数名称 类型 是否必填 说明
    accountId string 需要添加进黑名单的用户账号 ID。
    HarmonyOS
    TypeScriptaddUserToBlockList(accountId: string): Promise<void>
    
    参数名称 类型 是否必填 说明
    accountId string 需要添加进黑名单的用户账号 ID。

    示例代码

    Android
    JavaNIMClient.getService(V2NIMUserService.class).addUserToBlockList(accountId,
    new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void unused) {
    
        }
    },
    new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
    
        }
    });
    
    iOS
    Objective-C[[[NIMSDK sharedSDK] v2UserService] addUserToBlockList:@"accountId" success:^{
    
        } failure:^(V2NIMError * _Nonnull error) {
    
        }];
    
    macOS/Windows
    C++userService.addUserToBlockList(
        "account1",
        []() {
            // add user to blocklist success
        },
        [](V2NIMError error) {
            // add user to blocklist failed, handle error
        }
    );
    
    Web/uni-app/小程序
    TypeScriptnim.V2NIMUserService.addUserToBlockList('accid');
    
    Node.js/Electron
    TypeScriptawait v2.userService.addUserToBlockList(accountId)
    
    HarmonyOS
    TypeScriptnim.userService.addUserToBlockList('accid')
    

    返回值

    Android/iOS/macOS/Windows

    无返回值。

    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/macOS/Windows
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料知相关错误码。
    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    无。

    removeUserFromBlockList

    接口描述

    将指定用户移出黑名单。

    参数说明

    Android
    Javavoid removeUserFromBlockList(String accountId, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 说明
    accountId String 需要移出黑名单的用户账号 ID。
    success V2NIMSuccessCallback 移除成功回调。
    failure V2NIMFailureCallback 移除失败回调,返回 错误码
    iOS
    Objective-C- (void)removeUserFromBlockList:(NSString *)accountId
                            success:(nullable V2NIMSuccessCallback)success
                            failure:(nullable V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 说明
    accountId NSString * 需要移出黑名单的用户账号 ID。
    success V2NIMSuccessCallback 移除成功回调。
    failure V2NIMFailureCallback 移除失败回调,返回 错误码
    macOS/Windows
    C++virtual void removeUserFromBlockList(nstd::string accountId, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
    
    参数名称 类型 是否必填 说明
    accountId nstd::string 需要移出黑名单的用户账号 ID。
    success V2NIMSuccessCallback 移除成功回调。
    failure V2NIMFailureCallback 移除失败回调,返回 错误码
    Web/uni-app/小程序
    TypeScriptremoveUserFromBlockList(accountId: string): Promise<void>
    
    参数名称 类型 是否必填 说明
    accountId string 需要移出黑名单的用户账号 ID。
    Node.js/Electron
    TypeScriptremoveUserFromBlockList(accountId): Promise<void>
    
    参数名称 类型 是否必填 说明
    accountId string 需要移出黑名单的用户账号 ID。
    HarmonyOS
    TypeScriptremoveUserFromBlockList(accountId: string): Promise<void>
    
    参数名称 类型 是否必填 说明
    accountId string 需要移出黑名单的用户账号 ID。

    示例代码

    Android
    JavaNIMClient.getService(V2NIMUserService.class).removeUserFromBlockList(accountId, new V2NIMSuccessCallback<Void>() {
        @Override
        public void onSuccess(Void unused) {
    
        }
    }, new V2NIMFailureCallback() {
        @Override
        public void onFailure(V2NIMError error) {
    
        }
    });
    
    iOS
    Objective-C[[[NIMSDK sharedSDK] v2UserService] removeUserFromBlockList:@"accountId" success:^{
    
        } failure:^(V2NIMError * _Nonnull error) {
    
        }];
    
    macOS/Windows
    C++userService.removeUserFromBlockList(
        "account1",
        []() {
            // remove user from blocklist success
        },
        [](V2NIMError error) {
            // remove user from blocklist failed, handle error
        });
    
    Web/uni-app/小程序
    TypeScriptnim.V2NIMUserService.removeUserFromBlockList('accid');
    
    Node.js/Electron
    TypeScriptawait v2.userService.removeUserFromBlockList(accountId)
    
    HarmonyOS
    TypeScriptnim.userService.removeUserFromBlockList('accid')
    

    返回值

    Android/iOS/macOS/Windows

    无返回值。

    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    Promise<void>

    相关回调

    Android/iOS/macOS/Windows
    • 请求成功,返回 V2NIMSuccessCallback 回调。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料知相关错误码。
    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    无。

    getBlockList

    接口描述

    获取黑名单用户列表。

    参数说明

    Android
    Javavoid getBlockList(V2NIMSuccessCallback<List<String>> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 说明
    success V2NIMSuccessCallback 获取黑名单成功回调,返回黑名单中的用户账号 ID 列表。
    failure V2NIMFailureCallback 获取黑名单失败回调,返回 错误码
    iOS
    Objective-C- (void)getBlockList:(nullable V2NIMGetBlockListSuccess)success
                 failure:(nullable V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 说明
    success V2NIMGetBlockListSuccess 获取黑名单成功回调,可自定义设置。
    failure V2NIMFailureCallback 获取黑名单失败回调,返回 错误码
    macOS/Windows
    C++virtual void getBlockList(V2NIMSuccessCallback<nstd::vector<nstd::string>> success, V2NIMFailureCallback failure) = 0;
    
    参数名称 类型 是否必填 说明
    success V2NIMSuccessCallback 获取黑名单成功回调,返回黑名单中的用户账号 ID 列表。
    failure V2NIMFailureCallback 获取黑名单失败回调,返回 错误码
    Web/uni-app/小程序
    TypeScriptgetBlockList(): Promise<string[]>
    
    Node.js/Electron
    TypeScriptgetBlockList(): Promise<string[]>
    
    HarmonyOS
    TypeScriptgetBlockList(): Promise<string[]>
    

    示例代码

    Android
    JavaNIMClient.getService(V2NIMUserService.class).getBlockList(
        new V2NIMSuccessCallback<List<String>>() {
            @Override
            public void onSuccess(List<String> strings) {
    
            }
        },
        new V2NIMFailureCallback() {
            @Override
            public void onFailure(V2NIMError error) {
    
            }
        }
    );
    
    iOS
    Objective-C[[[NIMSDK sharedSDK] v2UserService] getBlockList:^(NSArray<NSString *> * _Nonnull result) {
    
    } failure:^(V2NIMError * _Nonnull error) {
    
    }];
    
    macOS/Windows
    C++userService.getBlockList(
        [](std::vector<std::string> accountIds) {
            for (auto&& accountId : accountIds) {
                // do something
            }
        },
        [](V2NIMError error) {
            // get blocklist failed, handle error
        });
    
    Web/uni-app/小程序
    TypeScriptconst blockList = await nim.V2NIMUserService.getBlockList()
    
    Node.js/Electron
    TypeScriptconst blockList = await v2.userService.getBlockList()
    
    HarmonyOS
    TypeScriptconst blockList = await nim.userService.getBlockList()
    

    返回值

    Android/iOS/macOS/Windows

    无返回值。

    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    Promise<string[]>:查询到的黑名单用户账号 ID 列表。

    相关回调

    Android/macOS/Windows
    • 请求成功,返回 V2NIMSuccessCallback 回调,包含黑名单用户账号 ID 列表。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料知相关错误码。
    iOS
    • 请求成功,返回 V2NIMGetBlockListSuccess 回调,可自定义设置。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料知相关错误码。
    Web/uni-app/小程序/Node.js/Electron/HarmonyOS

    无。

    searchUserByOption

    接口描述

    根据关键字信息搜索用户信息。

    参数说明

    Android
    Javavoid searchUserByOption(V2NIMUserSearchOption userSearchOption, V2NIMSuccessCallback<List<V2NIMUser>> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 说明
    userSearchOption V2NIMUserSearchOption 用户搜索的相关配置参数。
    success V2NIMSuccessCallback 搜索成功回调,返回 V2NIMUser 列表。
    failure V2NIMFailureCallback 搜索失败回调,返回 错误码
    iOS
    Objective-C- (void)searchUserByOption:(V2NIMUserSearchOption *)userSearchOption
                success:(nullable V2NIMGetUserListSuccess)success
                failure:(nullable V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 说明
    userSearchOption V2NIMUserSearchOption 用户搜索的相关配置参数。
    success V2NIMGetUserListSuccess 搜索成功回调,可自定义设置。
    failure V2NIMFailureCallback 搜索失败回调,返回 错误码
    macOS/Windows
    C++virtual void searchUserByOption(const V2NIMUserSearchOption& option,V2NIMSuccessCallback<nstd::vector<V2NIMUser>> success,V2NIMFailureCallback failure) = 0;
    
    参数名称 类型 是否必填 说明
    option V2NIMUserSearchOption 用户搜索的相关配置参数。
    success V2NIMSuccessCallback 搜索成功回调,返回 V2NIMUser 列表。
    failure V2NIMFailureCallback 搜索失败回调,返回 错误码
    Web/uni-app/小程序
    TypeScriptsearchUserByOption(option: V2NIMUserSearchOption): Promise<V2NIMUser[]>
    
    参数名称 类型 是否必填 说明
    userSearchOption V2NIMUserSearchOption 用户搜索的相关配置参数。
    Node.js/Electron
    TypeScriptsearchUserByOption(option): Promise<V2NIMUser[]>
    
    参数名称 类型 是否必填 说明
    userSearchOption V2NIMUserSearchOption 用户搜索的相关配置参数。

    示例代码

    Android
    JavaV2NIMUserSearchOption option = V2NIMUserSearchOption.V2NIMUserSearchOptionBuilder.builder("搜索关键字")
    //             按需配置
    //            .withSearchAccountId()
    //            .withSearchMobile()
    //            .withSearchName()
                .build();
        NIMClient.getService(V2NIMUserService.class).searchUserByOption(option,
                new V2NIMSuccessCallback<List<V2NIMUser>>() {
                    @Override
                    public void onSuccess(List<V2NIMUser> v2NIMUsers) {
    
                    }
                }, new V2NIMFailureCallback() {
                    @Override
                    public void onFailure(V2NIMError error) {
    
                    }
                });
    
    iOS
    Objective-CV2NIMUserSearchOption *option = [V2NIMUserSearchOption optionWithKeyword:@"keyword"];
    // 按需配置
    option.searchName = YES;
    option.searchAccountId = YES;
    option.searchMobile = YES;
    [NIMSDK.sharedSDK.v2UserService searchUserByOption:option
                                               success:^(NSArray <V2NIMUser *> *result)
                                               {
    
                                               }
                                               failure:^(V2NIMError *error)
                                               {
    
                                               }];
    
    macOS/Windows
    C++V2NIMUserSearchOption option;
    option.keyword = "test";
    userService.searchUserByOption(
       option,
       [](nstd::vector<V2NIMUser> users) {
       for (auto&& user : users) {
       // do something
       }
       },
       [](V2NIMError error) {
       // search user failed, handle error
       });
    
    Web/uni-app/小程序
    TypeScripttry {
        const users = await nim.V2NIMUserService.searchUserByOption({
            keyword: 'nick',
            searchName: true,
            searchAccountId: false,
            searchMobile: true
        })
    } catch(err) {
        console.error('searchUserByOption Error:', err)
    }
    
    Node.js/Electron
    TypeScripttry {
        const users = await v2.userService.searchUserByOption({
        keyword: 'Alice',
        searchName: true
    })
    } catch(err) {
        console.error('searchUserByOption Error:', err)
    }
    

    返回值

    Android/iOS/macOS/Windows

    无返回值。

    Web/uni-app/小程序

    Promise<V2NIMUser[]>:查询到的用户信息列表。

    Node.js/Electron

    Promise<V2NIMUser[]>:查询到的用户信息列表。

    相关回调

    Android/macOS/Windows
    • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMUser 列表。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户信息相关错误码。
    iOS
    • 请求成功,,返回 V2NIMGetUserListSuccess 回调,可自定义设置。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户信息相关错误码。
    Web/uni-app/小程序/Node.js/Electron

    无。

    :::

    getUserListFromCloud

    接口描述

    根据用户账号列表从服务器获取用户信息。

    查询用户信息一般建议使用 getUserList 接口,只有需要强制拉取最新用户信息才需要调用 getUserListFromCloud 接口。

    参数说明

    Android
    Javavoid getUserListFromCloud(List<String> accountIds, V2NIMSuccessCallback<List<V2NIMUser>> success, V2NIMFailureCallback failure);
    
    参数名称 类型 是否必填 说明
    accountIds List<String> 需要获取用户信息的账号列表,单次最多查询 150 个用户信息。若为空或 size==0,则返回参数错误。
    success V2NIMSuccessCallback 获取用户信息成功回调,返回用户信息列表。
    failure V2NIMFailureCallback 获取用户信息失败回调,返回 错误码
    iOS
    Objective-C- (void)getUserListFromCloud:(NSArray<NSString *> *)accountIds
                         success:(nullable V2NIMGetUserListSuccess)success
                         failure:(nullable V2NIMFailureCallback)failure;
    
    参数名称 类型 是否必填 说明
    accountIds NSArray<NSString *> * 需要获取用户信息的账号列表,单次最多查询 150 个用户信息。若为空或 size==0,则返回参数错误。
    success V2NIMGetUserListSuccess 获取用户信息成功回调,可自定义设置。
    failure V2NIMFailureCallback 获取用户信息失败回调,返回 错误码
    macOS/Windows
    C++virtual void v2::V2NIMUserService::getUserListFromCloud (nstd::vector< nstd::string > accountIds,
                                                                V2NIMSuccessCallback< nstd::vector< V2NIMUser > > success,
                                                                V2NIMFailureCallback     failure )
    
    参数名称 类型 是否必填 说明
    accountIds nstd::vector< nstd::string > 需要获取用户信息的账号列表,单次最多查询 150 个用户信息。若为空或 size==0,则返回参数错误。
    success V2NIMSuccessCallback 获取用户信息成功回调,返回用户信息列表。
    failure V2NIMFailureCallback 获取用户信息失败回调,返回 错误码
    Web/uni-app/小程序
    TypeScriptgetUserListFromCloud(accountIds: string[]): Promise<V2NIMUser[]>
    
    参数名称 类型 是否必填 说明
    accountIds string[] 需要获取用户信息的账号列表,单次最多查询 150 个用户信息。
    Node.js/Electron
    TypeScriptgetUserListFromCloud(accountIds): Promise<V2NIMUser[]>
    
    参数名称 类型 是否必填 说明
    accountIds string[] 需要获取用户信息的账号列表,单次最多查询 150 个用户信息。
    HarmonyOS
    TypeScript
    

    示例代码

    Android
    JavaList<String> accountIds = new ArrayList<>();
    accountIds.add("test01");
    accountIds.add("test02");
    NIMClient.getService(V2NIMUserService.class).getUserListFromCloud(accountIds, users -> {
        //Query successful
    }, error -> {
        //Query failed
    });
    
    iOS
    Objective-C[NIMSDK.sharedSDK.v2UserService getUserListFromCloud:@[@"accounId1",@"accountId2"] success:^(NSArray<V2NIMUser *> * _Nonnull result) {
            // 成功回调
        } failure:^(V2NIMError * _Nonnull error) {
            // 失败回调
        }];
    
    macOS/Windows
    C++nstd::vector<nstd::string> accountIds = {"test1", "test2"};
    userService.getUserListFromCloud(
        accountIds,
        [](nstd::vector<V2NIMUser> usersList) {
            for (auto&& user : usersList) {
                // do something
            }
        },
        [](V2NIMError error) {
            // get UserListFromCloud failed, handle error
        });
    
    Web/uni-app/小程序
    TypeScriptconst users = await nim.V2NIMUserService.getUserListFromCloud(["AccountID1", "AccountID2"])
    
    Node.js/Electron
    TypeScriptconst users = await v2.userService.getUserListFromCloud(accountIds)
    

    返回值

    Android/iOS/macOS/Windows

    无返回值。

    Web/uni-app/小程序/Node.js/Electron

    Promise<V2NIMUser[]>:查询到的用户信息列表。

    相关回调

    Android/macOS/Windows
    • 请求成功,返回 V2NIMSuccessCallback 回调,包含用户信息列表。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料相关错误码。
    iOS
    • 请求成功,返回 V2NIMGetUserListSuccess 回调,可自定义设置。
    • 请求失败,返回 V2NIMFailureCallback 回调,包含用户资料相关错误码。
    Web/uni-app/小程序/Node.js/Electron

    无。

    此文档是否对你有帮助?
    有帮助
    去反馈
    • 支持平台
    • API 概览
    • 用户资料监听
    • 用户资料操作
    • 接口类
    • addUserListener
    • removeUserListener
    • on("EventName")
    • off("EventName")
    • getUserList
    • updateSelfUserProfile
    • addUserToBlockList
    • removeUserFromBlockList
    • getBlockList
    • searchUserByOption
    • getUserListFromCloud