logo
当前页

用户管理


功能简介

ZIM SDK 提供了用户管理功能,支持用户上传自己的个人信息,更新自己的用户名称、头像,以及查询自己的个人信息等。

实现流程

用户扩展字段管理

ZIM SDK 提供了用户信息的扩展字段,用于描述用户的其他相关属性。开发者可以使用扩展字段,通过 updateUserExtendedData 接口,自定义用户的扩展字段。扩展字段可由开发者自行定义其使用方式,SDK 只会将该字段透传,不会做其他处理。

修改扩展字段属性后,用户可以通过 ZIMUserExtendedDataUpdatedCallback 收到修改结果。

Example
std::string new_user_extended_data = "{\"user_avatar\":\"https://url\",\"user_name\":\"new_name\",\"user_sex\":\"male\",\"user_birth\":\"1970-01-01\",\"user_phone\":\"12345678901\"}";

zim_->updateUserExtendedData(new_user_extended_data, [=](const std::string &extended_data, zim::ZIMError error_info){
    if (errorInfo.code == ZIM_ERROR_CODE_SUCCESS) {
        // 修改成功
    }
});
1
Copied!

修改用户名称

用户名称 userName,是指用来描述用户昵称的字符串,开发者可以通过 ZIMUserInfo 对象进行配置。ZIM SDK 支持用户在登录后,通过 updateUserName 接口修改自己的用户名称。

修改用户名称后,用户可以通过 ZIMUserNameUpdatedCallback 收到修改结果。

Example
// 修改用户名称
// userName 是一个最大长度为256字节的字符串,没有特殊字符限制。
std::string new_user_name = "新名称";

zim_->updateUserName(new_user_name, [=](const std::string &userName, const zim::ZIMError &errorInfo){
    if (errorInfo.code == ZIM_ERROR_CODE_SUCCESS) {
        // 修改成功
    }
});
1
Copied!

设置用户头像

ZIM SDK 支持用户在登录后,通过 updateUserAvatarUrl 接口设置或修改自己的用户头像。

设置用户头像后,用户可以通过 ZIMUserAvatarUrlUpdatedCallback 收到设置结果。

注意

当一名用户修改头像后,其他用户需调用 queryUsersInfo 接口,并将 ZIMUsersInfoQueryConfigisQueryFromServer 参数赋值为 true 重新 查询用户信息,才会获取最新头像。

Example
// URL最大长度为500字节,没有特殊字符限制
std::string user_avatar_url = "";

zim_->updateUserAvatarUrl(user_avatar_url, [=](const std::string &userAvatarUrl, zim::ZIMError error_info){
    if (errorInfo.code == ZIM_ERROR_CODE_SUCCESS) {
         // 操作成功
    }
});
1
Copied!

查询用户信息

用户可以通过 queryUsersInfo 接口,查询指定用户的全量信息,包括用户名称、用户扩展字段。用户头像 URL、用户扩展字段信息,仅在该接口中可以获取到。

查询信息后,用户可以通过 ZIMUsersInfoQueriedCallback 收到查询结果。

Example
// 查询用户信息
// 使用限制:单次调用接口查询的UserID数量不能超过10个;
// 在10秒内,多次调用接口查询的UserID累计总数不能超过10个。
std::string target_user_id = "user_id_1";

std::vector<std::string> user_id_list;
user_id_list.push_back(target_user_id);

zim::ZIMUsersInfoQueryConfig config;
// false表示本地查询,优先返回本地数据库中的数据。
// 如果本地数据库中没有相应的用户信息,并且未达到查询频率限制,则自动升级为从服务器查询。
// true表示服务器查询,优先从服务器获取用户信息。
// 当达到查询频率限制时,尚未从服务器查询的用户信息将尝试从本地数据库返回数据。
config.isQueryFromServer = false;

zim_->queryUsersInfo(user_id_list, config, [=](const std::vector<zim::ZIMUserFullInfo> &userList, const std::vector<zim::ZIMErrorUserInfo> &errorUserList, const ZIM::ZIMError &errorInfo) {
    if (errorInfo.code == ZIM_ERROR_CODE_SUCCESS) {
        // 查询成功
    }
});
1
Copied!

Previous

使用 Token 鉴权

Next

多端登录