文档捉虫大赛:人工智能与机器学习专题> HOT
用户资料介绍请参考 资料系统简介

TIMProfileGetUserProfileList

获取指定用户列表的个人资料。
原型
TIM_DECL int TIMProfileGetUserProfileList(const char* json_get_user_profile_list_param, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
json_get_user_profile_list_param
const char*
获取指定用户列表的用户资料接口参数的 JSON 字符串
cb
TIMCommCallback
获取指定用户列表的用户资料成功与否的回调。回调函数定义请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
可以通过该接口获取任何人的个人资料,包括自己的个人资料。
示例
Json::Value json_get_user_profile_list_param;
json_get_user_profile_list_param[kTIMFriendShipGetProfileListParamForceUpdate] = false;
json_get_user_profile_list_param[kTIMFriendShipGetProfileListParamIdentifierArray].append("user1");
json_get_user_profile_list_param[kTIMFriendShipGetProfileListParamIdentifierArray].append("user2");

int ret = TIMProfileGetUserProfileList(json_get_user_profile_list_param.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {
if (ERR_SUCC != code) {
// 获取资料列表失败
return;
}
}, nullptr);

TIMProfileModifySelfUserProfile

修改自己的个人资料。
原型
TIM_DECL int TIMProfileModifySelfUserProfile(const char* json_modify_self_user_profile_param, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
json_modify_self_user_profile_param
const char*
修改自己的资料接口参数的 JSON 字符串
cb
TIMCommCallback
修改自己的资料成功与否的回调。回调函数定义请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
修改自己的资料时,目前支持修改的字段请参考 UserProfileItem,一次可更新多个字段。修改自定义字段时填入的 key 值可以添加Tag_Profile_Custom_前缀,也可以不添加Tag_Profile_Custom_前缀,当不添加时,SDK 内部会自动添加该前缀。
示例
Json::Value modify_item;
modify_item[kTIMUserProfileItemNickName] = "change my nick name"; // 修改昵称
modify_item[kTIMUserProfileItemGender] = kTIMGenderType_Female; // 修改性别
modify_item[kTIMUserProfileItemAddPermission] = kTIMProfileAddPermission_NeedConfirm; // 修改添加好友权限

Json::Value json_user_profile_item_custom;
json_user_profile_item_custom[kTIMUserProfileCustemStringInfoKey] = "Str"; // 修改个人资料自定义字段 " Str " 的值
json_user_profile_item_custom[kTIMUserProfileCustemStringInfoValue] = "my define data";
modify_item[kTIMUserProfileItemCustomStringArray].append(json_user_profile_item_custom);
int ret = TIMProfileModifySelfUserProfile(modify_item.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {
if (ERR_SUCC != code) {
// 修改自己的个人资料失败
return;
}
}, nullptr);

TIMGetUserStatus

查询用户状态 (从 6.3 版本开始支持)
原型
TIM_DECL int TIMGetUserStatus(const char *json_identifier_array, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
json_identifier_array
const char*
用户 ID 列表
cb
TIMCommCallback
查询用户状态成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
如果您想查询自己的自定义状态,您只需要传入自己的 userID 即可。
示例
json::Array json_array;
json_array.push_back("user1");
json_array.push_back("user2");
TIMGetUserStatus(json::Serialize(json_array).c_str(), [](int32_t code, const char* desc, const char* json_param,
const void* user_data) {
if (ERR_SUCC != code) {
// 查询用户状态失败
return;
}
}, nullptr);

TIMSetSelfStatus

设置自己的状态 (从 6.3 版本开始支持)
原型
TIM_DECL int TIMSetSelfStatus(const char *json_current_user_status, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
json_current_user_status
const char*
待设置的自定义状态
cb
TIMCommCallback
设置自己的状态成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
该接口只支持设置自己的自定义状态,即 kTIMUserStatusCustomStatus 字段。
示例
json::Object json_current_user_status;
json_current_user_status[kTIMUserStatusCustomStatus] = "custom status";
TIMSetSelfStatus(json::Serialize(json_current_user_status).c_str(), [](int32_t code, const char* desc, const char* json_param,
const void* user_data) {
if (ERR_SUCC != code) {
// 设置自己的状态失败
return;
}
}, nullptr);

TIMSubscribeUserStatus

订阅用户状态 (从 6.3 版本开始支持)
原型
TIM_DECL int TIMSubscribeUserStatus(const char *json_identifier_array, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
json_identifier_array
const char*
待订阅的用户 ID 列表
cb
TIMCommCallback
订阅用户状态成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
当成功订阅用户状态后,当对方的状态(包含在线状态、自定义状态)发生变更后,您可以通过 TIMSetUserStatusChangedCallback 注册回调来感知。
如果您需要订阅好友列表的状态,您只需要在控制台上打开开关即可,无需调用该接口。
该接口不支持订阅自己,您可以通过 TIMSetUserStatusChangedCallback 注册回调来感知自身的自定义状态的变更。
订阅列表有个数限制,超过限制后,会自动淘汰最先订阅的用户。
示例
json::Array json_array;
json_array.push_back("user1");
json_array.push_back("user2");
TIMSubscribeUserStatus(json::Serialize(json_array).c_str(), [](int32_t code, const char* desc, const char* json_param,
const void* user_data) {
if (ERR_SUCC != code) {
// 订阅用户状态失败
return;
}
}, nullptr);

TIMUnsubscribeUserStatus

取消订阅用户状态 (从 6.3 版本开始支持)
原型
TIM_DECL int TIMUnsubscribeUserStatus(const char *json_identifier_array, TIMCommCallback cb, const void* user_data);
参数
参数
类型
含义
json_identifier_array
const char*
取消订阅的用户 ID 列表
cb
TIMCommCallback
订阅用户状态成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
user_data
const void*
用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
返回值
类型
含义
int
返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
说明
当 json_identifier_array 为空时,取消当前所有的订阅。
示例
json::Array json_array;
json_array.push_back("user1");
json_array.push_back("user2");
TIMUnsubscribeUserStatus(json::Serialize(json_array).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
if (ERR_SUCC != code) {
// 取消订阅用户状态失败
return;
}
}, nullptr);