用户管理

更新时间: 2024/04/17 15:00:36

NetEase IM SDK(以下简称 NIM SDK)提供用户信息的托管,实现用户资料和黑名单的统一管理和共享。

技术原理

NIM SDK 支持更新自己的用户信息,更新自己的黑名单列表等操作,其中用户资料包括用户昵称、性别、头像、签名、手机、邮箱、生日等信息。

对于用户黑名单,如果一个用户被加入了黑名单,那么就不再会收到此用户发送的任何消息;如果一个用户被从黑名单移除,那么会重新收到此用户发送的消息。

NIM SDK 会将用户资料缓存到本地,但是除自身的资料外,SDK 不保证其他用户资料的实时更新。SDK 不保证其他用户资料的实时更新,以下事件会触发其他用户资料的更新:

  • 登录时会同步好友用户资料(注册数据同步 addLoginDetailListener.onDataSync 回调,完成会发出通知)。
  • 收到其他用户发来消息时,如果消息发送者的用户资料有更新,则 SDK 会同步更新对方的用户资料。
  • 直接调用 SDK 接口从服务器拉取最新的用户资料,具体请参见本文的获取用户资料
  • 如果既不是好友,也未收到该用户发送的消息,则 SDK 不会更新对方的用户资料。
  • 如果需要同步的用户资料较多,SDK 的同步时间会相对较长。

前提条件

已实现登录 IM

监听用户相关事件

在进行用户相关操作前,您可以提前注册相关事件。注册成功后,当用户相关事件发生时,SDK 会触发对应回调通知。

用户相关回调:

  • onUserProfileChanged:用户资料变更回调,返回变更的用户资料列表。
  • onBlockListAdded:黑名单新增用户回调,返回新加入黑名单的用户列表。当客户端本端添加用户到黑名单,或者其他端同步添加用户到黑名单时触发该回调。
  • onBlockListRemoved:黑名单移除用户回调,返回移出黑名单的用户列表。当客户端本端从黑名单移除用户,或者其他端同步从黑名单移除用户时触发该回调。

Android/iOS/macOS/Windows

调用 addUserListener 方法注册用户相关监听器,监听用户资料变更、黑名单新增以及移出黑名单等事件。

示例代码:

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
cppV2NIMUserListener 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
javaNIMClient.getService(V2NIMUserService.class).removeUserListener(listener);
iOS
objective-c[[[NIMSDK sharedSDK] v2UserService] removeUserListener:self];
macOS/Windows
cppV2NIMUserListener listener;
// ...
userService.addUserListener(listener);
// ...
userService.removeUserListener(listener);

Web/uni-app/小程序/Harmony

调用 on("EventName") 方法注册用户相关监听器,监听用户资料变更、黑名单新增以及移出黑名单等事件。

示例代码:

Web/uni-app/小程序
typescriptnim.V2NIMUserService.on("onUserProfileChanged", function (users: V2NIMUser[]) {})
nim.V2NIMUserService.on("onBlockListAdded", function (user: V2NIMUser) {})
nim.V2NIMUserService.on("onBlockListRemoved", function (accountId: string) {})

如需移除用户相关监听器,可调用 off("EventName") 方法。

typescriptnim.V2NIMUserService.off("onUserProfileChanged", function (users: V2NIMUser[]) {})
nim.V2NIMUserService.off("onBlockListAdded", function (user: V2NIMUser) {})
nim.V2NIMUserService.off("onBlockListRemoved", function (accountId: string) {})
Harmony
typescriptnim.userService.on("onUserProfileChanged", function (users: V2NIMUser[]) {})
nim.userService.on("onBlockListAdded", function (user: V2NIMUser) {})
nim.userService.on("onBlockListRemoved", function (accountId: string) {})

如需移除用户相关监听器,可调用 off("EventName") 方法。

typescriptnim.userService.off("onUserProfileChanged", function (users: V2NIMUser[]) {})
nim.userService.off("onBlockListAdded", function (user: V2NIMUser) {})
nim.userService.off("onBlockListRemoved", function (accountId: string) {})

更新本人用户资料

调用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
    cppvirtual 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 - 用户资料更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。
    Harmony
    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
    cppV2NIMUserUpdateParams updateParams;
    updateParams.name = "name";
    userService.updateSelfUserProfile(
        updateParams,
        []() {
            // update success
        },
        [](V2NIMError error) {
            // update failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptnim.V2UserService.updateSelfUserProfile({
        name: 'ab',
    });
    
    Harmony
    typescriptnim.userService.updateSelfUserProfile({
        name: 'ab'
    })
        });
    

获取用户资料

调用 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
    cppvirtual 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 参数错误。
  • Harmony
    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
    cppnstd::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'])
    
    Harmony
    typescriptconst userProfiles = await nim.userService.getUserList(['accid1', 'accid2'])
    

根据关键字搜索用户信息

调用 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 - 搜索失败回调,返回错误码
    Windows/macOS
    cppvirtual 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 - 用户搜索的相关配置参数。
  • 示例代码:

    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)
                                            {
    
                                            }];
    
    Windows/macOS
    cppV2NIMUserSearchOption 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)
    }
    

添加指定用户进黑名单

调用addUserToBlockList方法将指定用户添加进黑名单。添加成功后,SDK 会返回黑名单用户新增回调 onBlockListAdded通知。

如果指定用户被加入了黑名单,那么就不再会收到此用户发送的任何消息。但是对于指定用户而言,不受影响。例如:A 用户将 B 用户加入黑名单,B 用户发送的消息,A 用户将接收不到。但是 A 用户发送的消息,B 用户依然可以接收到。

  • 参数说明:

    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
    cppvirtual 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。
    Harmony
    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
    cppuserService.addUserToBlockList(
        "account1",
        []() {
            // add user to blocklist success
        },
        [](V2NIMError error) {
            // add user to blocklist failed, handle error
        }
    );
    
    Web/uni-app/小程序
    typescriptnim.V2NIMUserService.addUserToBlockList('accid');
    
    Harmony
    typescriptnim.userService.addUserToBlockList('accid')
    

将指定用户移出黑名单

调用 removeUserFromBlockList 方法将指定用户移出黑名单。移除成功后,SDK 会返回黑名单用户移除回调 onBlockListRemoved通知。

如果一个用户被从黑名单移除,那么会重新收到此用户发送的消息。

  • 参数说明:

    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
    cppvirtual 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。
    Harmony
    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
    cppuserService.removeUserFromBlockList(
        "account1",
        []() {
            // remove user from blocklist success
        },
        [](V2NIMError error) {
            // remove user from blocklist failed, handle error
        });
    
    Web/uni-app/小程序
    typescriptnim.V2NIMUserService.removeUserFromBlockList('accid');
    
    Harmony
    typescriptnim.userService.removeUserFromBlockList('accid')
    

获取黑名单用户

调用 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
    cppvirtual void getBlockList(V2NIMSuccessCallback<nstd::vector<nstd::string>> success, V2NIMFailureCallback failure) = 0;
    
    参数名称 类型 是否必填 默认值 描述
    success V2NIMSuccessCallback - 获取黑名单成功回调,返回黑名单中的用户账号 ID列表。
    failure V2NIMFailureCallback - 获取黑名单失败回调,返回错误码
    Web/uni-app/小程序
    typescriptgetBlockList(): Promise<string[]>
    
    Harmony
    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
    cppuserService.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()
    
    Harmony
    typescriptconst blockList = await nim.userService.getBlockList()
    

相关信息

此文档是否对你有帮助?
有帮助
去反馈
  • 技术原理
  • 前提条件
  • 监听用户相关事件
  • 更新本人用户资料
  • 获取用户资料
  • 根据关键字搜索用户信息
  • 添加指定用户进黑名单
  • 将指定用户移出黑名单
  • 获取黑名单用户
  • 相关信息